javascript
function selectionSort(arr) {
const len = arr.length
// 每一次外循环确定一个最小值(因为是作比较,次数是数组长度-1)
for(let i = 0; i < len - 1; i++) {
// 假设当前索引为 i 的元素是最小的
let minIndex = i
// 每一次内循环两两比较(因为要比完数组剩下所有数,所以 j < 数组长度len)
for(let j = i + 1; j < len; j++) {
if(arr[j] < arr[minIndex]) {
minIndex = j
}
}
// 将最小元素与当前索引的元素进行交换
[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]
}
return arr
}
const nums = [4, 5, 2, 7, 8]
console.log(selectionSort(nums)) // [2, 4, 5, 7, 8]