JS--插入排序

注释写清楚了

var Insert_Sort = function(nums) {
    //插入排序--循环数组,将每个元素都与之前元素对比,再放进之前元素中该有的位置
    //插入排序与选择排序的区别:
    //选择排序需要每次选出最大或最小元素然后与该有位置相交换
    //而插入排序是-循环到哪个数组位置就为该数在之前的位置里寻找最佳位置

    //循环从i = 1;的时候拿取数据,存储current
    //pre存储i-1下标
    //while循环,把nums[pre]与current比较,nums[pre]大就pre--,还把前面的元素往后移;
    //完成while循环时,pre+1就是current最适合的位置;赋值
    //pre - current
    //循环从i = 1;开始
    for (let i = 1; i < nums.length; i++) {
        let current = nums[i]; //值
        let pre = i - 1; //索引

        while (pre >= 0 && nums[pre] > current) {
            nums[pre + 1] = nums[pre];
            pre--;
        }
        pre++;
        nums[pre] = current;


    }

    return nums;

};

console.log(Insert_Sort([6, 3, 5, 4, -1, -8, -4, 2]));

版权声明:本文为weixin_43850639原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。