插入排序:非常好理解,插入排序,就像我們平時在打撲克過程中整理手中排的過程一樣,從一側(cè)到另一側(cè),選擇一張牌,找到最終屬于它的位置,然后下一張牌,再找到它最終的位置。
插入排序:時間復(fù)雜度是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);
當(dāng)然代碼也很好理解啦,外層循環(huán)控制總的循環(huán)次數(shù),內(nèi)層循環(huán),負(fù)責(zé)讓我們新找到的這個數(shù)字,找到它最終的位置。
插入排序的過程