选择排序基础版
public static int[] SelectSort(int[] array) {
for(int i = 0;i < array.length; i++) {
int index = i;
for(int j = i; j < array.length ;j++) {
if(array[j] < array[index]) {
index = j;
}
}
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
return array;
}
选择排序就是在未序的序列中选出一个最大或最小的值放到已序序列的末尾,当内层循环筛选出最大或者最小值之后,会有一个做交换的操作,那么如果两个值相等或者index的值没有发生变化,那么此时就不需要在进行数值交换。此时代码可更改如下
public static int[] SelectSort(int[] array) {
int minValue;
for(int i = 0;i < array.length; i++) {
minValue = array[i];
int index = i;
for(int j = i; j < array.length ;j++) {
if(array[j] < array[index]) {
index = j;
}
}
if(minValue != array[index] && index != i) {
int temp = array[i];
array[i] = array[index];
array[index] = temp;
}
}
return array;
}