/**
遍历 length - 1 次
从 i + 1 项开始往前遍历,两两比较小的往前移动,
时间复杂度 O(n2)
*/
function insertionSort(target) {
let temp
for (let i = 0; i < target.length - 1; i++) {
for (let j = i + 1; j > 0; j--) {
if (target[j] < target[j - 1]) {
temp = target[j - 1]
target[j - 1] = target[j]
target[j] = temp
} else {
// 当不小于已排序好的最大值时
// 退出每次遍历,进行下一次
break
}
}
console.log(`第${i + 1}次循环`, target)
}
return target
}
console.log(insertionSort([23, 32, 5, 72, 12, 1]))