基本排序算法-插入排序

原理图示
        /*
        *insert: 实现插入排序
        *  @params
        *     ary [ARRAY] 需要排序的数组
        *  @return
        *     [ARRAY] 排序后的新数组
        */
       function insert(ary){
        // 1.准备一个新数组,用来存储抓到手里的牌,开始先抓一张牌进来
        let handle = [];
        handle.push(ary[0]);
        // 2.从第二项开始依次抓牌,一直到把台面上的牌抓光
        for(let i=1;i<ary.length;i++){
            // A是新抓的牌
            let A = ary[i];
            // 和HANDDLE手里的牌依次比较(从后向前比)
            for(let j=handle.length-1;j>=0;j--){
                    // 每一次要比较手里的牌
                    let B = handle[j];
                    // 如果当前新牌A比要比较的牌B大了,把A放到B的后面
                    if(A>B){
                        handle.splice(j+1,0,A)
                        break;
                    }
                    // 已经比到第一项,我们把新牌放到手中最前面即可
                    if(j === 0){
                        handle.unshift(A);
                    }
                }
            }
            return handle; 
        }
    let ary = [12,8,24,16,1];
    ary=insert(ary);
    console.log(ary);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容