function selectionSort(arr) {
// 1. 遍历整个数组
for (let i = 0; i < arr.length; i++) {
// 2. 每次循环标记当前元素
let currentIndex = i
// 3. 比较当前元素和左边一个元素,如果左边还有元素并且比当前元素大,就交换,不存在前一个或者比当前元素小时终止循环
while (arr[currentIndex - 1] !== undefined && arr[currentIndex] < arr[currentIndex - 1]) {
// 4. 交换当前元素和左边一个元素
[arr[currentIndex],arr[currentIndex-1]] = [arr[currentIndex-1],arr[currentIndex]]
// 5. 交换过后当前元素往左移
currentIndex -=1
}
}
return arr
}
const arr = [2, 3, 41, 1, 6, 53, 4, 6, 87, 4]
const res = selectionSort(arr)
console.log(res)
console