選擇排序(Selection sort)
一. 算法思想
把第i個作爲最小的元素min,遍歷後面的元素,記錄小於a[i]的元素下標,即min = j ,若遍歷完後i不等於min,則交換,這樣第一趟就把最小的元素放到了a[0]的位置。
二. 穩定性和時間複雜度
- 不穩定
- o(n^2)
三. 代碼實現
var a = [43, 65, 4, 23, 6, 98, 2, 65, 7, 79];
for(var i = 0;i<a.length-1;i++){
var min = i;
for(var j = i+1;j<a.length;j++){
if(a[j]<a[min]){
min = j;
}
}
if(i!=min){
var temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
console.log(a); // [ 2, 4, 6, 7, 23, 43, 65, 65, 79, 98 ]