我想知道,如果我的SelectionSort的以下实现是一个可能的实现。感谢你们! :)
public static int[] mySelectionSort (int [] array){
int position = 0;
int tmp;
for (int j = array.length -1; j >= 0; j--){
int max = array[0];
for (int i = 0; i <= j; i++){
if (array[i] >= max){
max = array[i];
position = i;
}
}
tmp = array[j];
array[j] = max;
array[position] = tmp;
}
return array;
}
答案 0 :(得分:0)
是的,这是选择排序变化。
你可以使用for (int i = 0; i < j
省略最后一次内循环运行 - 没有意义与自己交换最后一项。
可以考虑循环不变量: