Skip to content

Commit a68eea8

Browse files
authored
[U] 更新readme总结
1 parent 37cff9e commit a68eea8

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

README.md

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,20 +42,23 @@
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

0 commit comments

Comments
 (0)