选择排序
思路:找未排序的元素中最小的数,将最小数与起始位置互换,直到排序完成。
- 确定外层循环次数index为每一次寻找最小值的起始位置直到数组长度
- 内层循环每次都是由起始位置+1直到数组长度
- 假设每一次的起始位置为最小数,碰到更小的用更小的和后面的数继续作比较
- 保存最小数的索引
- 内层循环结束后最小数与起始位置互换
代码
function selectSort(arr){
for(let i = 0;i<arr.length;i++){
let minIndex = i;
for(let j=i+1;j<arr.length;j++){
if(arr[j]<arr[minIndex]){
minIndex = j;
}
}
// [arr[i],arr[minIndex]] = [arr[minIndex],arr[i]];
var temp = null;
temp = arr[i];
arr[i] = arr[minIndex];
arr[minIndex] = temp;
}
return arr
}
//检验
let array = [45,12,78,23,56,89]
let result = selectSort(array)
console.log(result);//=>[12,23,45,56,78,89]