插入排序(Insertion Sort)
插入排序是一種簡單的排序算法,這種算法可以一次構建最終排序的數組(或數列)。它在大型數列上的排序效率會遠低于一些更高級的排序算法,如快速排序、堆排序、歸并排序。
原理
每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完為止。
插入排序(Insertion Sort)
插入排序(Insertion Sort)
復雜度
算法 | 最好情況 | 平均情況 | 最壞情況 | 空間復雜度 | 穩定性 |
---|---|---|---|---|---|
插入排序 | O(n) | O(n2) | O(n2) | O(1) | 穩定 |
ES6實現
function InsertionSort(originalArray) {
const array = [...originalArray];
let len = array.length;
for (let i = 0; i < len; i++) {
let temp = array[i];
let j = i - 1;
while (j >= 0 && array[j] > temp) {
array[j+1] = array [j];
j--;
}
array[j+1] = temp;
}
return array;
}
參考
相關閱讀
JavaScript的排序算法——冒泡排序
JavaScript的排序算法——選擇排序
JavaScript的排序算法——插入排序
JavaScript的排序算法——歸并排序
JavaScript的排序算法——快速排序