一网打尽之插入排序

98 阅读1分钟

上一篇文章我们讲了选择排序,这次我们来讲一下插入排序。

中心思想

给定一个数组A,从数组的第二项开始向前比较,较小的项排在前面。这个操作有点类似扑克牌,在合适的位置里插入特定的数值。

代码实现

function insertSort(arr){
    // 从第2项开始向前比较
    for (let index = 1; index < arr.length; index++){
        let curIndex = index;
        // 因为随着index的增加,它前面的数据项会非常的多,因为需要遍历之前的数据项,找到最合适的插入位置
        while(curIndex >= 1 && arr[curIndex] < arr[curIndex-1]){
            [ arr[curIndex], arr[curIndex - 1] ] = [ arr[curIndex - 1], arr[curIndex] ];
            curIndex--;
        }
    }
    return arr;
}

最后

好啦,本期的插入排序到这里就结束啦,下期我们讲《冒泡、选择、插入三种算法的对比》,886~~