算法思想
在序列中先找到最小的,放到第一个位置,然后再在剩余元素中找最小的,放到第二个位置……以此类推
复杂度
时间复杂度为:O(n^2)
代码实现
function selectSort(arr){
for(var i = 0; i < arr.length; i++){
var low = i;
for(var j = i + 1;j < arr.length;j++){
if(arr[j] < arr[low]){
low = j;
}
}
if(low != i){ //如果low不等于i,说明low已经换了值,故将最小值arr[low]交换到前面
var t = arr[low];
arr[low] = arr[i];
arr[i] = t;
}
}
return arr;
}
var arr = [1, 3, 4, 5, 6, 7, 8, 9, 2];
selectSort(arr); //[1, 2, 3, 4, 5, 6, 7, 8, 9]