首页 > 编程语言 > 详细

插入排序

时间:2021-01-12 16:54:03      阅读:23      评论:0      收藏:0      [点我收藏+]
/**
     * 插入排序
     * 思想:每插入新的一项 都会和当前数组作比较,如果当前值大于数组最后一项,则插入到最后,否则排入前一项
     * 
     * 步骤 *(从小到大,从大到小把内部判断语句修改即可)
     * 1.新建空数组
     * 2.新数组添加原数组第一项
     * 3.最外层循环原数组,从1开始,这是为了和新数组第一项作比较
     * 4.声明当前值,为了和新数组的值作比较
     * 5.嵌套循环 循环的值为新数组,demo.length -1 从最大开始比较 
     * 6.如果外层变量news 大于 新数组old 则新数组存入该值 并且跳出该循环,继续下一项
     * 7.如果内层循环到最后都没有满足该要求,则 存入首位 说明外层变量news最小
     * 8.依次循环,直到retuen
     */

    //  demo = [10] 

    let arr = [10,9,8,15,14,12,99,50];
    function setArr(arr){
        let demo = [];
        demo.push(arr[0]);
        for(let i =1;i< arr.length; i++){
            let news = arr[i];
            for(let j = demo.length -1;j>=0;j--){
                let old = demo[j];
                
                console.log(‘当前循环次数‘,i,‘原数组当前值‘,news,‘新数组循环次数‘,j,‘新数组当前末尾值‘,old)
                if(news > old){
                    demo.splice(j+1,0,news);
                    break;
                }
                if(j === 0){
                    demo.unshift(news)
                }
            }
            console.log(i,demo)
        }
        return demo
    }
    setArr(arr)

 

插入排序

原文:https://www.cnblogs.com/zhaozhenghao/p/14266653.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!