插入排序(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的排序算法——快速排序
网友评论