js 插进去算法

// 插进去算法

// 插进去排序有点相似人类按字母递次对数据举行排序,就犹如你打扑克牌一样,将摸来的扑克按大小放到适宜的位置一样。它的道理就是经由过程嵌套轮回,外轮回将数组元素挨个挪动,而内轮回则对外轮回中选中的元素及它背面的元素举行比较;假如外轮回中选中的元素比内轮回中选中的元素小,那末数组元素会向右挪动,为内轮回中的这个元素腾出位置。
// 完成步骤以下:

// 1.从第一个元素最先,该元素默许已被排序
// 2.掏出下一个元素,在已排序的元素序列中从后向前扫描
// 3.假如该元素(已排序)大于新元素,将该元素移到下一位置
// 4.反复步骤3,直到找到已排序的元素小于或许即是新元素的位置
// 5.将新元素插进去到该位置
// 6.反复步骤2~5,直到排序完成

function insertionSort(arr) {

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

}

const arr = [91, 60, 96, 7, 35, 65, 10, 65, 9, 30, 20, 31, 77, 81, 24];
console.log(insertionSort(arr));

    原文作者:你也很棒哦
    原文地址: https://segmentfault.com/a/1190000017983686
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞