选择排序实现原理:从待排序元素中选择最小(最大)的元素作为首元素,直到排序完成。

<script>
let arr = [3, 4, 1, 2];
//外层循环 n-1 次,表示要找 n-1 次最小值
for(let i = 0; i < arr.length-1; i++ ) {
let mixIdx = i;
//内层循环找到后面未排序数组元素的最小值
for(let j = i+1; j < arr.length; j++) {
//如果当前最小值大于比较值,则将最小值下标替换为比较值下标
if( arr[mixIdx] > arr[j] ) {
mixIdx = j;
}
}
// 将最小元素和待排元素的首位替换
[arr[mixIdx], arr[i]] = [arr[i], arr[mixIdx]];
}
console.log(arr);
</script>
网友评论