function selectionSort(arr) {
// 1. 数组的第一轮循环(最后一个不用比,所以length-1)
for (let i = 0; i < arr.length - 1; i++) {
// 标记本轮中最小的
let minIndex = i
// 2. 从i+1到数组末尾进行比较
for (let j = i + 1; j < arr.length; j++) {
// 注意是minIndex和它比,不是i!!!!
// 3. 如果找到更小的,就标记为最小的
if (arr[minIndex] > arr[j]) minIndex = j
}
// 4. 最小的发生改变了,就用解构赋值进行交换
if (minIndex !== i) {
[arr[minIndex], arr[i]] = [arr[i], arr[minIndex]]
}
}
return arr
}
const arr = [2, 3, 41, 1, 6, 53, 4, 6, 87, 4]
const res = selectionSort(arr)
console.log(res)
console