Update time_complexity.md (#1772)

* Update time_complexity.md

对于多项式函数 c * f(n), 系数 c 好像不能称为常数项,遂查阅《算法导论 第三版》相关章节,在其 26 页使用了常量因子这一表述,该表述好像晦涩了些,小白提议这里将 ”常数项“ 改为 ”常数“。 
欢迎 K大及评阅大佬指正!

* Update time_complexity.md

---------

Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
sunshinesDL
2025-07-10 07:08:44 +08:00
committed by GitHub
parent 301adcf416
commit ee4d27dc17

View File

@ -751,7 +751,7 @@ $T(n)$ 是一次函数,说明其运行时间的增长趋势是线性的,因
若存在正实数 $c$ 和实数 $n_0$ ,使得对于所有的 $n > n_0$ ,均有 $T(n) \leq c \cdot f(n)$ ,则可认为 $f(n)$ 给出了 $T(n)$ 的一个渐近上界,记为 $T(n) = O(f(n))$ 。 若存在正实数 $c$ 和实数 $n_0$ ,使得对于所有的 $n > n_0$ ,均有 $T(n) \leq c \cdot f(n)$ ,则可认为 $f(n)$ 给出了 $T(n)$ 的一个渐近上界,记为 $T(n) = O(f(n))$ 。
如下图所示,计算渐近上界就是寻找一个函数 $f(n)$ ,使得当 $n$ 趋向于无穷大时,$T(n)$ 和 $f(n)$ 处于相同的增长级别,仅相差一个常数 $c$ 的倍数 如下图所示,计算渐近上界就是寻找一个函数 $f(n)$ ,使得当 $n$ 趋向于无穷大时,$T(n)$ 和 $f(n)$ 处于相同的增长级别,仅相差一个常数系数 $c$。
![函数的渐近上界](time_complexity.assets/asymptotic_upper_bound.png) ![函数的渐近上界](time_complexity.assets/asymptotic_upper_bound.png)
@ -763,9 +763,9 @@ $T(n)$ 是一次函数,说明其运行时间的增长趋势是线性的,因
### 第一步:统计操作数量 ### 第一步:统计操作数量
针对代码,逐行从上到下计算即可。然而,由于上述 $c \cdot f(n)$ 中的常数 $c$ 可以取任意大小,**因此操作数量 $T(n)$ 中的各种系数、常数项都可以忽略**。根据此原则,可以总结出以下计数简化技巧。 针对代码,逐行从上到下计算即可。然而,由于上述 $c \cdot f(n)$ 中的常数系数 $c$ 可以取任意大小,**因此操作数量 $T(n)$ 中的各种系数、常数项都可以忽略**。根据此原则,可以总结出以下计数简化技巧。
1. **忽略 $T(n)$ 中的常数**。因为它们都与 $n$ 无关,所以对时间复杂度不产生影响。 1. **忽略 $T(n)$ 中的常数**。因为它们都与 $n$ 无关,所以对时间复杂度不产生影响。
2. **省略所有系数**。例如,循环 $2n$ 次、$5n + 1$ 次等,都可以简化记为 $n$ 次,因为 $n$ 前面的系数对时间复杂度没有影响。 2. **省略所有系数**。例如,循环 $2n$ 次、$5n + 1$ 次等,都可以简化记为 $n$ 次,因为 $n$ 前面的系数对时间复杂度没有影响。
3. **循环嵌套时使用乘法**。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别套用第 `1.` 点和第 `2.` 点的技巧。 3. **循环嵌套时使用乘法**。总操作数量等于外层循环和内层循环操作数量之积,每一层循环依然可以分别套用第 `1.` 点和第 `2.` 点的技巧。