Skip to content

Commit 1d40dbf

Browse files
committed
Update 01.Divide-And-Conquer-Algorithm.md
1 parent decd26c commit 1d40dbf

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

Contents/09.Algorithm-Base/03.Divide-And-Conquer-Algorithm/01.Divide-And-Conquer-Algorithm.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,21 +84,21 @@ $T(n) = \begin{cases} \begin{array} \ O{(1)} & n = 1 \cr 2T(n/2) + O(n) & n > 1
8484

8585
根据归并排序的递归表达式,当 $n > 1$ 时,可以递推求解:
8686

87-
$\begin{align} T(n) & = 2T(n/2) + O(n) \cr & = 2(2T(n / 4) + O(n/2)) + O(n) \cr & = 4T(n/4) + 2O(n) \cr & = 8T(n/8) + 3O(n) \cr & = …… \cr & = 2^xT(n/2^x) + xO(n) \end{align}$
87+
$\begin{align} T(n) & = 2T(n/2) + O(n) \cr & = 2(2T(n / 4) + O(n/2)) + O(n) \cr & = 4T(n/4) + 2O(n) \cr & = 8T(n/8) + 3O(n) \cr & = …… \cr & = 2^x \times T(n/2^x) + x \times O(n) \end{align}$
8888

89-
递推最终规模为 $1$,令 $n = 2^x$,则 $x = log_2n$,则:
89+
递推最终规模为 $1$,令 $n = 2^x$,则 $x = \log_2n$,则:
9090

91-
$\begin{align} T(n) & = nT(1) + log_2nO(n) \cr & = n + log_2nO(n) \cr & = O(nlog_2n) \end{align}$
91+
$\begin{align} T(n) & = n \times T(1) + \log_2n \times O(n) \cr & = n + \log_2n \times O(n) \cr & = O(n \times \log_2n) \end{align}$
9292

93-
则归并排序的时间复杂度为 $O(nlog_2n)$。
93+
则归并排序的时间复杂度为 $O(n \times \log_2n)$。
9494

9595
### 3.2 递归树法
9696

9797
递归树求解方式其实和递推求解一样,只不过递归树能够更清楚直观的显示出来,更能够形象地表达每层分解的节点和每层产生的时间成本。
9898

9999
使用递归树法计算时间复杂度的公式为:
100100

101-
$时间复杂度 = 叶子数 * T(1) + 成本和 = 2^xT(1) + xO(n)$。
101+
$时间复杂度 = 叶子数 * T(1) + 成本和 = 2^x \times T(1) + x \times O(n)$。
102102

103103
我们还是以「归并排序算法」为例,通过递归树法计算一下归并排序算法的时间复杂度。
104104

@@ -110,7 +110,7 @@ $T(n) = \begin{cases} \begin{array} \ O{(1)} & n = 1 \cr 2T(n/2) + O(n) & n > 1
110110

111111
![](https://qcdn.itcharge.cn/images/20220414171458.png)
112112

113-
因为 $n = 2^x$,则 $x = log_2n$,则归并排序算法的时间复杂度为:$2^xT(1) + xO(n) = n + log_2nO(n) = O(log_2n)$。
113+
因为 $n = 2^x$,则 $x = \log_2n$,则归并排序算法的时间复杂度为:$2^x \times T(1) + x \times O(n) = n + \log_2n \times O(n) = O(n \times log_2n)$。
114114

115115
## 4. 分治算法的应用
116116

0 commit comments

Comments
 (0)