排序——选择排序
选择排序
两次循环,大小循环,大循环来控制需要交换的位置,
小循环寻找未排序的序列中的最小值的位置,记录位置,然后与大循环记录的位置进行交换。
public class SelectSort {
public void selectSort(Integer[] arrays){
if(arrays.length == 0 || arrays == null) return;
int len = arrays.length;
for(int i = 0; i < len - 1; i++){
int min = i;
for(int j = i + 1; j < len; j++){
if(arrays[min] > arrays[j]) {
min = j;
}
}
if(min != i) swap(arrays, min, i);
}
}
}
同样存在会多排序的次数
4 2 1 6 3 6 0 -5 1 1
-5 2 1 6 3 6 0 4 1 1
-5 0 1 6 3 6 2 4 1 1
-5 0 1 6 3 6 2 4 1 1
-5 0 1 1 3 6 2 4 6 1
-5 0 1 1 1 6 2 4 6 3
-5 0 1 1 1 2 6 4 6 3
-5 0 1 1 1 2 3 4 6 6
-5 0 1 1 1 2 3 4 6 6
-5 0 1 1 1 2 3 4 6 6(多余的)

浙公网安备 33010602011771号