File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 4242| 希尔排序 | O(nlogn) | O(1) | | | | 不稳定 |
4343| 堆排序 | O(nlogn) | O(1) | | | | 不稳定 |
4444
45+ ## 其他算法总结
46+
47+ - 二分查找法,时间复杂度为O(logn)
48+
49+ ## 其他
50+
4551注意这里总结的都是平均时间复杂度。
4652
4753例如插入排序,如果是有序的数组,则时间复杂度会退化成O(n)。而快速排序,对于每次选择的p位置都是末尾位置,则会退化成时间复杂度为O(n^2)(通过让p的位置随机来解决这个问题)。
4854对于归并排序、快速排序、堆排序这三个O(nlogn)的排序来说,时间复杂度是有常数级别的区别的,但是快速排序是相对更快的一种排序。
4955
5056这里还需要注意的是,对于插入排序、快速排序、堆排序来说,都是原地排序的,即不需要额外的空间;而归并排序则是非原地排序,需要借助额外空间。
5157
52- > 排序算法的稳定性:对于相等的元素,在排序后,原来靠前的元素依然靠前,相等元素的相对位置没有发生改变。
53-
54- > 对于算法面试来说,除非面试题特别说明,否则认为要排序的数据范围是均匀分布的。
55-
56- > 快速排序之所以叫快速排序,并不代表它比堆排序和归并排序优良。在最好情况下,它的渐进复杂度与 堆排序和归并排序是相同的。知识快速排序的常量系数比较小而已。
57-
58- > 类库上提供的排序,并不是某一种算法的实现,而是综合了多种排序的综合排序。当数组比较小时,使用插入排序;当数组较大时,选择快速排序或其他的O(nlogn)的排序。
58+ 1 . 排序算法的稳定性:对于相等的元素,在排序后,原来靠前的元素依然靠前,相等元素的相对位置没有发生改变。
59+ 2 . 对于算法面试来说,除非面试题特别说明,否则认为要排序的数据范围是均匀分布的。
60+ 3 . 快速排序之所以叫快速排序,并不代表它比堆排序和归并排序优良。在最好情况下,它的渐进复杂度与 堆排序和归并排序是相同的。知识快速排序的常量系数比较小而已。
61+ 4 . 类库上提供的排序,并不是某一种算法的实现,而是综合了多种排序的综合排序。当数组比较小时,使用插入排序;当数组较大时,选择快速排序或其他的O(nlogn)的排序。
5962
6063# 经典算法
6164
You can’t perform that action at this time.
0 commit comments