<html>
<body>
<script>
function directSelectSort(arr) {
let len = arr.length;
let m;
for (let i = 0; i < len - 1; i++) { //len-1 最后一个不用再判断了。因为前面选择的都是小的树,剩下最后一个肯定比之前的大,放最后不用动
m = i;
for (let j = i + 1; j < len; j++) {
if (arr[j] < arr[m]) {
m = j;
}
}
if (m != i) { // 避免因为m没有变化再调换一次无意义,浪费时间
let temp = arr[i];
arr[i] = arr[m];
arr[m] = temp;
}
}
return arr;
}
console.log(directSelectSort([2, 4, 1, 3, 9, 10, 7, 4, 6, 8]));
</script>
</body>
</html>
m的作用,放置最小元素的index,最后比较完之后,m != i 即最小的是从i+1之后的取到的,就交换,否则不需要交换。