Skip to content

Commit 3737be2

Browse files
committed
修正表述错误
1 parent bcc87cb commit 3737be2

File tree

1 file changed

+15
-15
lines changed

1 file changed

+15
-15
lines changed

docs/00_preface/00_03_algorithm_complexity.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48,21 +48,21 @@ def find_max(arr):
4848
时间复杂度分析如下:
4949
- 当 $n$ 足够大时,$3n$ 是主要影响项,常数 $2$ 可以忽略不计。
5050
- 由于我们关注的是随规模增长的趋势,常数系数 $3$ 也可以省略。
51-
- 因此,该算法的时间复杂度为 $O(n)$。这里的 $O$ 表示渐进符号,强调 $f(n)$ 与 $n$ 成正比。
51+
- 因此,该算法的时间复杂度为 $O(n)$。这里的 $O$ 表示渐近符号,强调 $f(n)$ 与 $n$ 成正比。
5252

53-
所谓「算法执行时间的增长趋势」,实际上就是用类似 $O$ 这样的渐进符号,来简洁地描述算法随输入规模变化时的资源消耗情况。
53+
所谓「算法执行时间的增长趋势」,实际上就是用类似 $O$ 这样的渐近符号,来简洁地描述算法随输入规模变化时的资源消耗情况。
5454

55-
### 2.2 渐进符号
55+
### 2.2 渐近符号
5656

57-
时间复杂度通常记作 $T(n) = O(f(n))$,称为 **渐进时间复杂度(Asymptotic Time Complexity)**,用于描述当问题规模 $n$ 趋近于无穷大时,算法运行时间的增长趋势。我们常用渐进符号(如 $O$、$\Omega$、$\Theta$ 等)来表达这种增长关系。渐进时间复杂度只关注主导项,忽略常数和低阶项,从而简洁地反映算法的本质效率。
57+
时间复杂度通常记作 $T(n) = O(f(n))$,称为 **渐近时间复杂度(Asymptotic Time Complexity)**,用于描述当问题规模 $n$ 趋近于无穷大时,算法运行时间的增长趋势。我们常用渐近符号(如 $O$、$\Omega$、$\Theta$ 等)来表达这种增长关系。渐近时间复杂度只关注主导项,忽略常数和低阶项,从而简洁地反映算法的本质效率。
5858

59-
> **渐进符号(Asymptotic Symbol)**:一类数学符号,用于描述函数(如算法运行时间或空间)随输入规模增长时的变化速度。在算法分析中,常用的渐进符号有大 $O$(上界)、大 $\Omega$(下界)、大 $\Theta$(紧确界),它们帮助我们以统一的方式比较不同算法的效率。
59+
> **渐近符号(Asymptotic Symbol)**:一类数学符号,用于描述函数(如算法运行时间或空间)随输入规模增长时的变化速度。在算法分析中,常用的渐近符号有大 $O$(上界)、大 $\Omega$(下界)、大 $\Theta$(紧确界),它们帮助我们以统一的方式比较不同算法的效率。
6060
61-
![渐进符号关系图](https://qcdn.itcharge.cn/images/202109092356694.png)
61+
![渐近符号关系图](https://qcdn.itcharge.cn/images/202109092356694.png)
6262

63-
#### 2.2.1 渐进上界符号 $O$
63+
#### 2.2.1 渐近上界符号 $O$
6464

65-
> **渐进上界符号 $O$**:用于描述算法运行时间的上限,通常反映算法在最坏情况下的性能。
65+
> **渐近上界符号 $O$**:用于描述算法运行时间的上限,通常反映算法在最坏情况下的性能。
6666
6767
**数学定义**:设 $T(n)$ 和 $f(n)$ 为两个函数,若存在正常数 $c$ 和 $n_0$,使得对所有 $n \geq n_0$,都有 $T(n) \leq c \cdot f(n)$,则称 $T(n) = O(f(n))$。
6868

@@ -73,9 +73,9 @@ def find_max(arr):
7373
> - 如果 $T(n) = 2 \times n + 5$,则 $T(n) = O(n)$。
7474
> - 如果 $T(n) = 100$,则 $T(n) = O(1)$。
7575
76-
#### 2.2.2 渐进下界符号 $\Omega$
76+
#### 2.2.2 渐近下界符号 $\Omega$
7777

78-
> **渐进下界符号 $\Omega$**:用于描述算法运行时间的下界,通常反映算法在最优情况下的性能。
78+
> **渐近下界符号 $\Omega$**:用于描述算法运行时间的下界,通常反映算法在最优情况下的性能。
7979
8080
**数学定义**:设 $T(n)$ 和 $f(n)$ 为两个函数,若存在正常数 $c > 0$ 和 $n_0$,使得对所有 $n \geq n_0$,都有 $T(n) \geq c \cdot f(n)$,则称 $T(n) = \Omega(f(n))$。
8181

@@ -86,9 +86,9 @@ def find_max(arr):
8686
> - 如果 $T(n) = 2 \times n + 5$,则 $T(n) = \Omega(n)$。
8787
> - 如果 $T(n) = n^3$,则 $T(n) = \Omega(n^2)$。
8888
89-
#### 2.2.3 渐进紧确界符号 $\Theta$
89+
#### 2.2.3 渐近紧确界符号 $\Theta$
9090

91-
> **渐进紧确界符号 $\Theta$**:用于描述算法运行时间的精确数量级,即算法在最好和最坏情况下的增长速度都与 $f(n)$ 保持一致。
91+
> **渐近紧确界符号 $\Theta$**:用于描述算法运行时间的精确数量级,即算法在最好和最坏情况下的增长速度都与 $f(n)$ 保持一致。
9292
9393
**数学定义**:设 $T(n)$ 和 $f(n)$ 为两个函数,若存在正常数 $c_1, c_2 > 0$ 及 $n_0$,使得对所有 $n \geq n_0$,都有 $c_1 \cdot f(n) \leq T(n) \leq c_2 \cdot f(n)$,则称 $T(n) = \Theta(f(n))$。
9494

@@ -101,7 +101,7 @@ def find_max(arr):
101101
102102
### 2.3 时间复杂度计算
103103

104-
渐进符号用于描述函数的上界、下界,以及算法执行时间随问题规模增长的趋势。
104+
渐近符号用于描述函数的上界、下界,以及算法执行时间随问题规模增长的趋势。
105105

106106
在分析时间复杂度时,我们通常使用 $O$ 符号来表示算法的上界,因为实际应用中更关注算法在最坏情况下的表现。
107107

@@ -339,7 +339,7 @@ def find(nums, val):
339339

340340
> **空间复杂度(Space Complexity)**:在问题的输入规模为 $n$ 的条件下,算法所占用的空间大小,可以记作为 $S(n)$。一般将 **算法的辅助空间** 作为衡量空间复杂度的标准。
341341
342-
空间复杂度的渐进符号表示方法与时间复杂度相同,可以表示为 $S(n) = O(f(n))$,表示算法空间占用随问题规模 $n$ 的增长趋势。
342+
空间复杂度的渐近符号表示方法与时间复杂度相同,可以表示为 $S(n) = O(f(n))$,表示算法空间占用随问题规模 $n$ 的增长趋势。
343343

344344
相对于算法的时间复杂度计算来说,算法的空间复杂度更容易计算。空间复杂度的计算主要包括局部变量占用的存储空间和递归栈空间两个部分。
345345

@@ -376,7 +376,7 @@ def algorithm(n):
376376

377377
## 4. 总结
378378

379-
**「算法复杂度」** 包括 **「时间复杂度」****「空间复杂度」**,用于衡量算法在输入规模 $n$ 增大时的资源消耗情况。通常使用**渐进符号**(如 $O$ 符号)来描述算法复杂度的增长趋势。
379+
**「算法复杂度」** 包括 **「时间复杂度」****「空间复杂度」**,用于衡量算法在输入规模 $n$ 增大时的资源消耗情况。通常使用**渐近符号**(如 $O$ 符号)来描述算法复杂度的增长趋势。
380380

381381
常见的时间复杂度有:$O(1)$、$O(\log n)$、$O(n)$、$O(n \log n)$、$O(n^2)$、$O(n^3)$、$O(2^n)$、$O(n!)$。
382382

0 commit comments

Comments
 (0)