基本思想:
首先,找出未排序里面的最小值放在第一個位置息罗,如果第一個值即是自小值掂咒,那么不需要交換,否則兩者值進行交換。
然后绍刮,從第二個值開始温圆,找出未排序的最小值。同樣孩革,如果第二個值是次小的值不需要交換岁歉,否則第二個值跟次小的值進行交換。
再者膝蜈,從第三個值開始遍歷找出第三小的值锅移,進行交換,依次類推饱搏。
動態(tài)圖例:
javascript代碼:
var arr1= [1,2,3,5,44,22,12,4,2,66,27];
function selectSort(arr){
if(!(arr instanceof Array) || arr.length <2) return arr;
for(let i =0; i < arr.length - 1;i++){
let idx = i;
for(let j = i + 1; j < arr.length; j++){
if(arr[j] < arr[idx]){
idx = j
}
}
if(i != idx){
let temp = arr[i]
arr[i] = arr[idx]
arr[idx] = temp
}
}
return arr;
}
selectSort(arr1)
[1, 2, 2, 3, 4, 5, 12, 22, 27, 44, 66]