簡單選擇排序
簡單選擇排序
在要排序的一組數(shù)中粹淋,選出最械氨病(或者最大)的一個數(shù)與第1個位置的數(shù)交換;然后在剩下的數(shù)當(dāng)中再找最泻剿簟(或者最大)的與第2個位置的數(shù)交換胀蛮,依次類推,直到第n-1個元素和第n個元素比較完畢為止糯钙。時(shí)間復(fù)雜度為0(n^2)粪狼。
例子:8, 1, 10, 3, 7, 2, 6, 4, 9, 5 的選擇排序過程。
第1輪排序結(jié)果:1,8,10,3,7,2,6,4,9,5
第2輪排序結(jié)果:1,2,10,3,7,8,6,4,9,5
第3輪排序結(jié)果:1,2,3,10,7,8,6,4,9,5
第4輪排序結(jié)果:1,2,3,4,7,8,6,10,9,5
第5輪排序結(jié)果:1,2,3,4,5,8,6,10,9,7
第6輪排序結(jié)果:1,2,3,4,5,6,8,10,9,7
第7輪排序結(jié)果:1,2,3,4,5,6,7,10,9,8
第8輪排序結(jié)果:1,2,3,4,5,6,7,8,9,10
第9輪排序結(jié)果:1,2,3,4,5,6,7,8,9,10
第10輪排序結(jié)果:1,2,3,4,5,6,7,8,9,10
最終結(jié)果: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) + "輪排序結(jié)果:" + list);
}
}
var a = [8, 1, 10, 3, 7, 2, 6, 4, 9, 5];
selectsort(a);
console.log("最終結(jié)果:" + a);