所以我有這樣的代碼爲我的選擇排序:選擇排序的算法問題
public static void selectionSort(int[] arrayToSort){
int smallest;
for(int i = 0; i < arrayToSort.length; i++){
smallest = i;
for(int j = i+1; j < arrayToSort.length; j++){
if(arrayToSort[j] < arrayToSort[smallest]){
smallest = j;
}
if(smallest != i){
int temp = arrayToSort[i];
arrayToSort[i] = arrayToSort[smallest];
arrayToSort[smallest] = temp;
}
}
}
}
我生成與隨機數的int數組。我的選擇排序有時會對數組進行排序,有時它會對數組進行「幾乎」排序。除了極少數在錯誤位置的數字之外,該數組大部分將被排序。我無法弄清楚這裏出了什麼問題,有什麼想法?
一些測試結果,其中陣列並沒有完全排序:
***NON SORTED***
77
53
27
58
83
***SORTED***
27
53
77
58
83
和
***NON SORTED***
40
87
27
48
82
***SORTED***
27
40
82
48
87
哦,我明白這是怎麼搞的。謝謝! – Carlton