1.理解,插入排序法就是遍历一波,依次找出每次遍历元素最合适的位置,然后把它插到该位置
2.当遍历一波后,每个元素都找到了自己合适的位置就排序好了
3.举例。3 1 2 5;当遍历到1时它最合适的位置是0,则把前面的元素往它的位置挪(1 3 2 5),然后遍历到2时,它的最合适的位置是1,则把前面合适位置到它之间的元素往它的位置挪(1235),排好
4.区别于冒泡法,冒泡法每次都会选出一个最值到0,1,2...的位置,而插入法每次都会把当前元素找到前面最合适的位置插入
var testFun = function () {
var list = [3, 2, 1, 5, 4];
for (var i = 1; i < list.length; i++) {
var temp = list[i];//遍历选出扑克牌
// console.log(temp);
// var j = i;
// while (j > 0 && list[j-1] > temp) {
// list[j] = list[j - 1];
// j--
// }
// list[j] = temp;//最后空出了一个不满足的位置(前面有个不满足的或者到了最前面的位置),选出的temp则插入到该位置
for (var j = i; j >= 0; j--) {
if (list[j - 1] > temp) {
list[j] = list[j - 1];
} else {
break;
}
}
list[j] = temp;
}
}