排序算法
最后更新于
最后更新于
对于 JS 来说,数组长度大于 10 会采用快速排序
,否则使用插入排序
。选择插入排序是因为虽然时间复杂度很差,但是在数据 量很小的情况下和 O(N * logN) 相差无几,然而插入排序需要的常数时间很小,所以相对别的排序来说更快。
快速排序
在完全无序的情况下效果最好,时间复杂度为O(nlogn),在有序情况下效果最差,时间复杂度为O(n^2)。
外部排序常用的算法是归并排序
。
数组元素基本有序的情况下,插入排序
效果最好,因为这样只需要比较大小,不需要移动,时间复杂度趋近于O(n)。
如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用堆排序
方法最快。
对长度为 n 的线性表作快速排序,在最坏情况下,比较次数为 n(n-1)/2。