Skip to content

Commit e7f2a40

Browse files
committed
归并排序递归式求解
1 parent 5ed3ea9 commit e7f2a40

File tree

4 files changed

+12
-1
lines changed

4 files changed

+12
-1
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ Python 抽象程度比较高, 我们能用更少的代码来实现功能,同
140140
## 如何获取每章代码
141141

142142
注意每一章目录里都有 py 文件,在电子书里看不到。clone 下代码找到对应目录里的 python 文件即是每章涉及到的代码。
143+
由于代码实现千差万别,本书代码实现可能具有一定的个人风格,仅供参考。
143144

144145

145146
## 如何学习

docs/13_高级排序算法/merge_sort.md

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@ def merge_sort(seq):
4747

4848
![](./merge_sorted_array.png)
4949

50+
![](./merge_sorted_array_2.png)
51+
5052

5153
```py
5254
def merge_sorted_list(sorted_a, sorted_b):
@@ -91,7 +93,15 @@ T(n)= \begin{cases} c, & \text {if $n$ = 1} \\ 2T(n/2)+cn, & \text{if $n$ > 1} \
9193

9294
![](./merge_sort_recursion_tree.png)
9395

94-
总的代价是 $cnlg(n)+cn$ ,忽略常数项可以认为是 O(nlg(n))
96+
总的代价是 $cnlg(n)+cn$ ,忽略常数项可以认为是 O(nlg(n))。如果这个图看不懂,我们自己求解下也不难,首先我们简化一下,
97+
把常数系数当成 1,得到以下递归式:
98+
99+
\begin{align}
100+
T(n)= \begin{cases} 1, & \text {if $n$ = 1} \\ 2T(n/2)+n, & \text{if $n$ > 1} \end{cases}
101+
\end{align}
102+
103+
![](./tn.png)
104+
95105

96106
# 思考题
97107
- 请你完成归并排序的单元测试
Loading

docs/13_高级排序算法/tn.png

170 KB
Loading

0 commit comments

Comments
 (0)