簡單選擇排序
簡單選擇排序
在要排序的一組數中,選出最小(或者最大)的一個數與第1個位置的數交換;然后在剩下的數當中再找最?。ɑ蛘咦畲螅┑呐c第2個位置的數交換,依次類推,直到第n-1個元素和第n個元素比較完畢為止。時間復雜度為0(n^2)。
例子:8, 1, 10, 3, 7, 2, 6, 4, 9, 5 的選擇排序過程。
第1輪排序結果:1,8,10,3,7,2,6,4,9,5
第2輪排序結果:1,2,10,3,7,8,6,4,9,5
第3輪排序結果:1,2,3,10,7,8,6,4,9,5
第4輪排序結果:1,2,3,4,7,8,6,10,9,5
第5輪排序結果:1,2,3,4,5,8,6,10,9,7
第6輪排序結果:1,2,3,4,5,6,8,10,9,7
第7輪排序結果:1,2,3,4,5,6,7,10,9,8
第8輪排序結果:1,2,3,4,5,6,7,8,9,10
第9輪排序結果:1,2,3,4,5,6,7,8,9,10
第10輪排序結果:1,2,3,4,5,6,7,8,9,10
最終結果:1,2,3,4,5,6,7,8,9,10
function selectsort(list) {
var temp;
var min;
for (var i = 0; i < list.length; i++) {
min = list[i];
temp = i;
for (var j = i; j < list.length; j++) {
if (list[j] < min) {
min = list[j];
temp = j;
}
}
var temp2;
temp2 = list[i];
list[i] = list[temp];
list[temp] = temp2;
console.log("第" + (i + 1) + "輪排序結果:" + list);
}
}
var a = [8, 1, 10, 3, 7, 2, 6, 4, 9, 5];
selectsort(a);
console.log("最終結果:" + a);