选择排序
2022-01-08 本文已影响0人
zhanggongzi
基本思想:
首先,找出未排序里面的最小值放在第一个位置,如果第一个值即是自小值,那么不需要交换,否则两者值进行交换。
然后,从第二个值开始,找出未排序的最小值。同样,如果第二个值是次小的值不需要交换,否则第二个值跟次小的值进行交换。
再者,从第三个值开始遍历找出第三小的值,进行交换,依次类推。
动态图例:
selectionSort.gif
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]