Open lixiaojuan12 opened 4 years ago
var ary = [34, 56, 12, 66, 12]; function insertSort(ary) { //最终排序好的数组盒子 var newAry = []; //拿出的第一项放进去,此时盒子中只有一项,不用个比较 newAry.push(ary[0]); // 依次拿出原数组中的每一项进行插入 for (var i = 1; i < ary.length; i++) { var getItem = ary[i]; // 在插入的时候需要跟新数组中的每一项进行比较(从右向左) for (var j = newAry.length - 1; j >= 0; j--) { var newItemAry = newAry[j]; if (getItem >= newItemAry) { // 如果拿出的项比某项大或者相等,就放到此项的后面 newAry.splice(j + 1, 0, getItem); // 插入完毕,不用再继续比较停止循环; break; } if (j == 0) { //如果都已经比到第一项了,还没满足条件,说明这个就是最小项,我们之间插入到数组的最前面 newAry.unshift(getItem); } } } return newAry; } var res = insertSort(ary); console.log(res);