算法—直接插入排序(InsertionSort)

直接插入排序(InsertionSort)

通俗的想就是抓扑克牌,将新抓的牌插入到原先有序的扑克列中

  (1)将一组数列的第一个元素A拿出来,2到n-1的看成未排序序列。

  (2)扫描未排序数列,将A元素插入到合适的位置。

  (3)重复以上操作

            算法—直接插入排序(InsertionSort)_第1张图片
              插入排序示意图

JavaScript实现

var array = [221, 1, 33, 44, 55, 66, 2];
var j, key;
var insertSort = function (arr) {
    //从第二个元素开始遍历
    for (var i = 1; i < arr.length; i++) {
        j = i;
        key = arr[j];
        //循环 第一次循环来说 key=22  arr[j]=1 ,js是值传递不是引用传递
        while (--j > -1) {
            if (arr[j] > key) {
                arr[j + 1] = arr[j];
            } else {
                break;
            }
        }
        arr[j + 1] = key;
    }
    return arr;
}
console.log(insertSort(array));

 

 

你可能感兴趣的:(算法—直接插入排序(InsertionSort))