JAVA实现选择排序
前言:选择排序,顾名思义,就是选择一个位置进行比较排序。区别于冒泡排序,选择排序是选择一个索引位,与其他索引位进行比较交换,而冒泡排序则是相邻两个索引位进行比较交换
核心思想
选择第 0索引位,与其他索引位相比较,第一次比较,得出小的数始终确保位于0索引位,该趟结束后,得出最小数。之后选择第1索引重复比较
设计思路
外层控制循环整个数组循环次数,同时赋予内层索引初始值,内层控制该次循环下,索引位比较次数
代码实现
选择排序算法
public static void selector(int[] arr){
for (int x = 0; x<arr.length-1; x++){
for (int y= x+1; y<arr.length; y++){
if (arr[x]>arr[y]){
int temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
}
}
}
测试代码
public static void main(String[] args) {
int [] arry = {2,5,1,6,8,7,5,0};
selector(arry);
for (int num: arry){
System.out.print(num);
}
}
测试结果
01255678
代码解析
x<arr.length-1;外层循环为什么需要-1?首先该数组长度为8,x<arr.length的结果为7,此时索引位为[0,7]但是实际上排完[0,6]索引位时第7个索引位就无需再拿去循环一趟int y= x+1;内层循环为什么是x+1?由第一次循环举例,初始索引位为0,所以内层循环只需要从1索引位开始,值得注意的是,该内循环判断条件是:arr[x]>arr[y],这也是选择排序的精髓

浙公网安备 33010602011771号