function swap(arr, a, b){
const tmp = arr[a]
arr[a] = arr[b]
arr[b] = tmp
}
function selectionSort(arr){
const newArr = arr.slice()
const len = newArr.length
for (let i = 0; i< len; i++){
let minIndex = i // 保存最小下标
let minVal = newArr[i]
for(let j = i+1; j<len; j++){
if (newArr[minIndex] > newArr[j]) { // 当前小于基准的值时,将最小值设为当前下标,然后继续向后比较,知道最后
minIndex = j
minVal = arr[j]
}
}
// 判断最小值下标是否改变,如果是交换位置
if (i !== min) {
// es6 交换
[newArr[i], newArr[minIndex]] = [newArr[minIndex], newArr[i]]
// swap(newArr, i, min)
}
}
return newArr
}
const newArr = selectionSort([3,5,7,1,2,43,54,1])
console.log(newArr)