选择排序用于解决数组的排序问题,其基本思路为:最小元素应放在下标为0的位置,次小元素应放在下标为1的位置......最大的元素应放在下标为array.length-1的位置。在算法执行的过程中,外层循环用于假设当前下标为i的元素就是第i小的,内层循环用于寻找比当前下标为i元素更小的元素的下标,并修改第i小的下标指示器。代码如下:
public static void select_sort(int [] arr){
int target = 0;//第i小下标指示器
int tmp = 0;//用于最后的元素交换
for(int i = 0; i < arr.length; i++){
target = i;
for(int j = i; j < arr.length; j++){
if(arr[j] < arr[target]){
target = j;
}
}
//do switch
if(i != target){
tmp = arr[i];
arr[i] = arr[target];
arr[target] = tmp;
}
}
}