SOURCE

/**
 遍历 length - 1 次
 从左到右开始找,每遍历一次将最小值跟当前值交换
 时间复杂度 O(n^2^)
 */
function selctionSort(target) {
    for (let i = 0; i < target.length - 1; i++) {
        let min = target[i]
        let minIndex = i

        for (let j = i + 1; j < target.length; j++) {
            if (target[j] < min) {
                min = target[j]
                minIndex = j
            }
        }

        console.log(`第${i + 1}次循环`, target)
        // 减少循环次数
        if (minIndex === i) break
        target[minIndex] = target[i]
        target[i] = min
    }

    return target
}

console.log(selctionSort([23, 32, 5, 72, 12, 1]))
console.log(selctionSort([1, 2, 3, 4, 5, 6])) 
console 命令行工具 X clear

                    
>
console