排序算法之——插入排序(图文+代码详解)

排序算法之——插入排序(图文+代码详解)

首先当你听到这个名字的时候,重点就在插入这两个字,举个栗子:打麻将或者打扑克牌的时候,已经有两张牌为基准,比如:手里有一张1万和3万,这时候你摸到了一张2万,那么就会把这张二万插入到1万和3万之间;斗地主的时候同理,手里有3、4、6、8,这时摸到一张5,就要把这张5先跟最后一位8比较,5比8小,往前移一位,再跟6比较,比6也小,再往前移一位,这时跟4比较,比4大,比6小,ok,插入到4和6中间,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入这就是插入排序算法。

下面再配合一张图让你更加容易理解
在这里插入图片描述

接下来再用代码实现一下插入排序方法:

function insertSort(arr) {
    var len = arr.length;
    var lastIndex, currentNumber;
    for (var i = 1; i < len; i++) {
        lastIndex= i - 1;
        currentNumber= arr[i];
        while(lastIndex>= 0 && arr[lastIndex] > current) {
            arr[lastIndex+1] = arr[lastIndex];
            lastIndex--;
        }
        arr[lastIndex+1] = currentNumber;
    }
    return arr;
}

怎么样,是不是一下子就把插入排序算法理解的透透的,(●ˇ∀ˇ●)

猜你喜欢

转载自blog.csdn.net/liupengxunzhuanshu/article/details/106120769