/** * 插入排序 * 思想:每插入新的一项 都会和当前数组作比较,如果当前值大于数组最后一项,则插入到最后,否则排入前一项 * * 步骤 *(从小到大,从大到小把内部判断语句修改即可) * 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