本文一共1932字,预计阅读7分钟
前言
什么是选择排序
选择排序(Selection sort)是八大排序算法中的一种,它也是一种比较简单直观的排序算法。它的逻辑就是:
根据排序时升序还是降序,第一次排序时从待排序的数据元素中选出最小(或最大)的一个元素,存放在数组的起始位置,如果存在则将第一个元素和最小元素的位置互换,然后后面的每次排序都是再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的最后。以此类推,直到全部待排序的数据元素的个数为零。
可以这么理解:队伍里有五个人,个子分别是170cm、150cm、164cm、154cm、145cm。
如果使用选择排序对这个队伍按照个子从低到高的顺序进行排序,那么就是:
第一次排序从队伍里找出个子最小的一个(145cm),并与目前队伍里的第一个(170cm)进行交换,那么第一次排序之后的结果就是:145、150、164、154、170
第二次排序就是从第二个位置开始到最后一个位置中选择个子最矮的一个(150),并与目前第二个位置上的人交换,那么第二次排序之后的结果就是:145、150、164、154、170
第三次排序就是从第三个位置开始到最后一个位置选择个子最矮的一个(154)并与目前第三个位置上的人交换,那么第三次排序之后的结果就是:145、150、154、164、170
第四次排序就是从第四个位置开始到最后一个位置选择个子最矮的一个(164)并与目前第四个位置上的认交换,这里不用,第四次排序之后的结果就是最后的排序结果145、150、154、164、170。
选择排序的java实现
public class SelectSort {public static void main(String[] args) {int[] number = {2,1,5,4,6,3,9,7};Sort(number);}public static void Sort(int[] numbers){for (int i = 0; i < numbers.length-1; i++) {最小下标int miniIndex = i;最小值int mini = numbers[i];//遍历比较for (int j = i+1; j < numbers.length; j++) {if (mini > numbers[j]) {miniIndex = j ;mini = numbers[j ];}}if (miniIndex != i) {numbers[miniIndex] = numbers[i];numbers[i] = mini;}//输出每次排序结果System.out.println("第"+(i+1)+"次排序");System.out.println(Arrays.toString(numbers));}}}
运行结果入下:

总结
-END-
Spring注解(三):@scope设置组件作用域 Spring常用注解大全,值得你的收藏!!! Spring注解(七):使用@Value对Bean进行属性赋值 SpringBoot开发Restful风格的接口实现CRUD功能 Spring注解(六):Bean的生命周期中自定义初始化和销毁方法的四种方式
文章转载自1024笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




