核心思想:找到一组数中的最小值,将其与第一个交换。再找从第二个开始的数组中的最小值,再与第二个交换…
比如[5,4,3,2,1],最小值为1,第一次交换完为[1,4,3,2,5],最小值为2,2和4交换为[1,2,3,4,5]
代码为:
function selectionSort(arr){
for(let i=0;i<arr.length;i++){
var index;
var min=arr[i];
for(let j=i;j<arr.length;j++){
if(arr[j]<=min){
min=arr[j];
index=j;
}
}
[arr[index],arr[i]]=[arr[i],arr[index]];
}
return arr;
}
var arr=[5,3,7,1,7,8];
console.log(selectionSort(arr));