Java选择排序实现

Java实现选择排序和冒泡排序 1 问题描述 给定一个可排序的n元素序列(例如,数字、字符和字符串),将它们按照非降序方式重新排列。 2 解决方案 2.1 选择排序原理简介 选择排序开始的时候,我们从第一个元素开始扫描整个列表,找到它的最小元素,然后和第一个元素交换,将最小元素和第一个元素交换位置;然后,我们从第二个元素开始扫描剩下的n-1个元素,找到这n-1个元素中的最小元素,将最小元素和第二个元素交换位置;然后从第三个元素开... 阅读详情
选择排序
```java


public class ChoiceSort {


    public static void main(String[] args) {
        int [] arr = {1, 77, 21, 8, -1, 9, -1, -1};
        sort(arr); // 调用方法
        listArr(arr);// 排序后遍历
    }

    // 排序方法, 先寻找最小的值和该值的索引,之后将最小值放在数组第一位,第一位的值与最小值原来位置交换,
    private static void sort(int [] arr){

        // 定义初始索引
        int min_dex = 0;
        int min = 0;

        // 只需要排序数组长度减1次, 每次排序, 将已经找到的最小值去除, 只对后面除最小值后面的数据进行排序
        for (int i = 0; i < arr.length - 1; i++) {

            // 初始索引
            min_dex = i;
            // 假设初始值
            min = arr[min_dex];

            // 每次寻找在原来的数组基础上后移一个索引, 因为假设了i位值为目前的最小值
            for (int j = i + 1; j < arr.length; j++) {
                // 寻找最小值和最小索引
                if (min > arr[j]) {
                    min = arr[j];
                    min_dex = j;
                }

            }
            // 初始所有没有改变则不需要执行交换
            if (min_dex != i){
                arr[min_dex] = arr[i];
                arr[i] = min;
            }
        }



    }

    // 遍历数组
    private static void listArr(int [] arr){
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
        System.out.println();
    }
}



【排序算法】选择排序原理及Java实现 选择排序是一种简单直观的排序算法,其基本原理如下:对于给定的一组记录,经过第一轮比较后得到最小的记录,然后将该记录的位置与第一个记录的位置交换;接着对不包括第一个记录以外的其他记录进行第二次比较,得到最小记录并与第二个位置记录交换;重复该过程,知道进行比较的记录只剩下一个为止。 阅读详情

相关推荐

选择排序的java代码实现

一、选择排序算法的思想: 对于给定数组:int[] arr={a1,a2,a3....an},每一次选择未排序序列的最小的元素放在已经排序序列的后面,经过N次排序以后,数组就是有序的。如:第一次选择,已排序序列是空,未排序序列就是{a1,a2,a3....an},此时选择最小的元素ax与数组头a1交换位置。第二次选择,已排序序列就是{ax},此时选择未排序序列中最小的元素ay与未排序序列首个位置...

mjh_1228的专栏 3523

java实现选择排序

java实现选择排序

程序员阿龙的博客 1万+

java递归实现选择排序

递归选择排序 在 7.11 节中已经介绍过选择排序。 回顾一下, 选择排序法是先找到列表的最小数, 并和 第一个元素交换。 然后, 在剩余的数中找到最小数, 再将它和剩余列表中的第一个元素交换, 这样的过程一直进行下去, 直到列表中仅剩一个数为止。 这个问题可以分解为两个子问题: • 找出列表中的最小数, 然后将它与第一个数进行交换。 • 忽略第一个数, 对余下的较小一些的列表进行递

guo15553887248的博客 1394

选择排序之直接选择排序Java实现

选择排序之直接选择排序Java实现

Devin 1152

python 常见算法(1-50题)

常见的算法题

weixin_58470558的博客 1757

计算机国际会议中的proceedings、conference、paper、workshop、demo:如何区分与选择?

本文详细解析了计算机国际会议中的核心概念:Conference(会议)是学术交流的主舞台,Paper(论文)是研究成果的书面呈现,被接收后收录于Proceedings(会议论文集)。Workshop(研讨会)聚焦前沿细分领域,Demo(演示)则侧重系统与工具的可交互展示。文章为研究者根据自身阶段与工作类型,如何区分与选择投稿目标提供了实用指南。

weixin_29269441的博客 562

选择排序之java实现

选择排序也是比较简单的一种排序方法,原理也比较容易理解,它与冒泡排序的比较次数相同,但选择排序的交换次数少于冒泡排序。冒泡排序是在每次比较之后,若比较的两个元素顺序与待排序顺序相反,则要进行交换,而选择排序在每次遍历过程中只记录下来最小的一个元素的下标,待全部比较结束之后,将最小的元素与未排序的那部分序列的最前面一个元素交换,这样就降低了交换的次数,提高了排序效率。 java实现的代码如

Kevinzhangfei的专栏 7971

告别重启烦恼:用WSL2让Docker和VMware在Win10上真正共存

本文详细介绍了如何在Windows 10系统上,借助WSL2实现Docker与VMware的真正共存,彻底告别以往需要反复重启切换的烦恼。通过启用Hyper-V兼容模式并进行正确配置,开发者无需重启即可同时高效运行容器和虚拟机,显著提升开发与测试工作流的连续性和效率。

salt9的博客 987

Java实现选择排序

Java实现选择排序 选择排序原理为:随机确定一个标志位(一般为第一个数字)作为最小数,然后向后遍历,找到比标志位更小的数便与标志位互换位置并更新最小数,实现步骤为: 将数组的第一个数字设置为标志位最小数并记录最小数下标。 向后遍历,发现更小数后将该数与标志位互换位置并更新最小数与最小数下标。 循环完成排序 实现代码如下(不会写的话使用copilot生成后读代码学习): public static void main(String[] args){ int int[] arr = new in

高电平的博客 7031

ArcGIS基础:城市交通网络构建及设施服务分析(一):道路数据处理与拓扑操作

首先需要加载数据, 1:选择这个数据库:,右键导入,选择导入单个要素,弹出“要素类至要素类” 2:输出位置(导入的数据是CAD格式数据)。 3:输出要素类为道路。 4:字段只保留道路类型字段。 这个操作是分类合并各级道路数据。 1:通过属性选择各类道路数据。 2:比如此类都是“干道”。 3:编辑器下来,然后合并即可。 得到如图所示,需要用到三个字段。 上面这个操作是打断道路相交线。 1:选中所有数据。 2:找到高级编辑中的打断相交线。 3:确定即可。 下面进行拓扑检查,虽然我们已经进行合并和打断相交.

yuanYW7556的博客 2万+

Simulink开发项1000例实战专栏--实例64:基于Simulink构建一个储能系统模型

通过引入储能系统,太阳能电站能够实现在白天储存多余的能量,在夜晚释放能量,平滑负荷曲线,提高电网的稳定性和可靠性。本项目的目标是基于Simulink平台,构建一个完整的储能系统模型,并通过仿真验证其在电网调峰中的应用效果。通过引入储能系统,工业园区能够实现在负荷高峰期释放能量,在负荷低谷期储存能量,平滑负荷曲线,降低用电成本,提高电网的稳定性和可靠性。通过引入储能系统,风力发电场能够实现在负荷高峰期释放能量,在负荷低谷期储存能量,平滑负荷曲线,提高电网的稳定性和可靠性。

xiaoheshang_123的博客 515

用Java实现选择排序

/** * 项目:用Java实现选择排序 * 时间:2019/8/9 *作者:郑翰林 */ import java.util.Scanner; public class Exercies10 { public static void main(String[] args) { System.out.print("请输入数组:"); Scanner ...

翰林学士 205

4.26华为OD机试真题 新系统 - 端口流量统计 (Java/Py/C/C++/Js/Go)

本文整理华为 OD 机试新系统机考真题库,涵盖高频考点精析与完整题目内容,提供 C 语言、Java、C++、Python、Go、JavaScript 多语言源码实现,搭配详细解题思路讲解,并支持在线 OJ 刷题练习,助力高效备考华为 OD 机试新系统。

算法大师! 2334

java 树形选择排序_选择排序、树形排序、堆排序的java代码实现

/*** 选择排序:* 简单选择排序,树形选择排序与堆排序**/public classSelecSortDemo {/*** --------------------------------------------* 简单选择排序* 原理:假设列表中有n个元素,从第一个元素开始,在第一个元素* 与最后一个元素之间选择一个最小的元素与第一个元素交换,* 然后从第二个元素开始,在第二个元素与最后一个...

weixin_35110758的博客 592

Unity GameObject 核心机制深度解析:从底层结构到工程实践

从底层机制讲透 Unity GameObject:托管壳加原生芯的双层对象模型如何制造假 null 陷阱、Transform 层级与组件通信的原理、生命周期回调的确切顺序。文章同时给出 Instantiate 成本分析与对象池等高频场景的工程实践。

游戏人生 40

【头歌】链栈的基本操作及应用

另外,在算法的开始和结束时,栈都应该是空的,所以匹配到最后还要判断栈是否为空,若空,则说明匹配成功,返回1。其中表达式只包含三种括号,花括号{}、中括号[]、圆括号(),即它仅由 (、)、[、]、{、}六个字符组成。预期输出: 栈中元素依次为:12 47 5 8 6 92 45 63 75 38 4 29 弹出的栈顶元素 e=29 栈空否:0(1:空 0:否) 栈顶元素 e=4 栈的长度为11 清空栈后,栈空否:1(1:空 0:否)// 若栈不空,则用e返回S的栈顶元素,并返回OK;

qq_39977056的博客 4383

Java的冒泡排序和选择排序的实现

介绍了Java数组的冒泡排序和选择排序的实现。

终生学习践行者 1938

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

java实现整数选择排序

实现整数排序的方法有很多,属于数据结构里面比较重要的一部分也是数据结构必讲的一个知识点,最近在学习java语言实现的整数排序,现在把学到的和大家分享一下。 选择排序, 第一次循环示意图:

sz0268的博客 1759

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

上一篇: JAVA实现冒泡排序初级算法
下一篇: JAVA中的插入排序
Pel-Java-And-BigData
博客等级 码龄7年 6粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值