This commit is contained in:
krahets
2023-08-29 20:57:15 +08:00
parent 638312fdb1
commit 9f30ce7260
29 changed files with 95 additions and 58 deletions

View File

@@ -4,6 +4,8 @@ comments: true
# 11.11   小结
### 1.   重点回顾
- 冒泡排序通过交换相邻元素来实现排序。通过添加一个标志位来实现提前返回,我们可以将冒泡排序的最佳时间复杂度优化到 $O(n)$ 。
- 插入排序每轮将未排序区间内的元素插入到已排序区间的正确位置,从而完成排序。虽然插入排序的时间复杂度为 $O(n^2)$ ,但由于单元操作相对较少,它在小数据量的排序任务中非常受欢迎。
- 快速排序基于哨兵划分操作实现排序。在哨兵划分中,有可能每次都选取到最差的基准数,导致时间复杂度劣化至 $O(n^2)$ 。引入中位数基准数或随机基准数可以降低这种劣化的概率。尾递归方法可以有效地减少递归深度,将空间复杂度优化到 $O(\log n)$ 。
@@ -18,7 +20,7 @@ comments: true
<p align="center"> 图 11-19 &nbsp; 排序算法对比 </p>
## 11.11.1 &nbsp; Q & A
### 2. &nbsp; Q & A
!!! question "排序算法稳定性在什么情况下是必须的?"