定义
- 从右向左进行比较,使手中的牌总是有序的
适应性
- 对于少量元素排序来说是一个有效的算法
工作方式
- 类似扑克牌,第一次手中只有一张牌,抽第二张时,与第一张作比较,比第一张小就往它前面插,抽第三张时,依次与从右至左与第二张第一张作比较,直至插入至合适的地方
图文详解
代码实现
function sort(arr) {
for (let j = 1, len = arr.length; j < len; j++) {
let i = j - 1
let key = arr[j]
while (i >= 0 && key < arr[i]) {
arr[i+1] = arr[i]
i--
}
arr[i+1] = key
}
return arr
}