选择排序可以将一个数组理解为未排序区域和已排序区域
从数组第一位开始往数组最后一位遍历,用min记录第一个数的下标,假设这个数是最小的,将其与后面的数进行比较,若出现比他还要小的,将这个更小的数的下标与min交换。一轮遍历完之后如果最小的数的下标min不等于第一个数,将第一个数和下标为min的数字进行位置互换。
/**
* 选择排序
* @Description:每次循环一轮,将未排序中的最小数选出来,放在已排序中的最后一位
* @param sum 需要排序的数组
*/
public void selectSort(int[] sum){
for(int i=0;i<sum.length;i++){
int min=i; // 记录未排序数组中第一个数的下标
for(int j=i+1;j<sum.length;j++){
if(sum[min]>sum[j]){
min=j;
}
}
if(i!=min){ // 未排序数组中的第一个数不是最小的数字
temp = sum[i];
sum[i] = sum[min];
sum[min] = temp;
}
}
}
本文深入讲解了选择排序算法的工作原理,通过将数组分为已排序和未排序区域,每次从未排序区域选择最小元素并放到已排序区域末尾,实现数组排序。文章详细介绍了选择排序的实现过程,包括初始化最小值下标、遍历比较、交换元素等关键步骤。
3667

被折叠的 条评论
为什么被折叠?



