插入排序:非常好理解,插入排序,就像我们平时在打扑克过程中整理手中排的过程一样,从一侧到另一侧,选择一张牌,找到最终属于它的位置,然后下一张牌,再找到它最终的位置。
插入排序:时间复杂度是O(n^2),但是如果对于局部有序的序列用插入排序是非常高效的,会比用一些高级排序算法的性能还要好,而且插入排序的思想是很重要的,从而也可以衍生出希尔排序,总之插入排序还是挺好的。
代码如下:
/**
* Created by linSir on 17/2/8.
*/
var list = [1, 4, 2, 3, 0];
function insertSort(list) {
for (var i = 0; i < list.length; i++) {
for (var j = i; j > 0; j--) {
if (list[j] < list[j - 1]) {
var temp = list[j];
list[j] = list[j - 1];
list[j - 1] = temp;
}
}
console.log(list);
}
}
insertSort(list);
console.log(list);
当然代码也很好理解啦,外层循环控制总的循环次数,内层循环,负责让我们新找到的这个数字,找到它最终的位置。