第2章 函数的增长
2.1 渐近记号
-
渐近紧确线: θ \theta θ
-
运行表达式 T ( n ) T(n) T(n)中n的最大次数项。例如: T ( n ) = 30 n 4 + 20 n 3 + 40 n 2 + 46 n + 100 T(n)=30n^4+20n^3+40n^2+46n+100 T(n)=30n4+20n3+40n2+46n+100,记为 T ( n ) = θ ( n 4 ) T(n)=\theta(n^4) T(n)=θ(n4)
-
数学含义: f ( n ) f(n) f(n)和 g ( n ) g(n) g(n)同阶
-
注意: θ ( g ( n ) ) \theta(g(n)) θ(g(n))的定义要求当n足够大时, g ( n ) g(n) g(n)非负
-
-
渐近上界记号: O O O
- 渐近地给出函数的上界
- O ( g ( n ) ) = f ( n ) O(g(n))=f(n) O(g(n))=f(n)
- 这个上界的阶越低,评估越精确,越有价值
- 用作算法的最坏情况运行时间
-
渐近下界记号: Ω \Omega Ω
- 下界的阶越高,评估越精确,越有价值
- Ω ( g ( n ) ) = f ( n ) \Omega(g(n))=f(n) Ω(g(n))=f(n)
-
非渐近紧确上界: o o o
- o ( g ( n ) ) = f ( n ) o(g(n))=f(n) o(g(n))=f(n)
- 比渐近紧确上界阶数高
-
非渐近紧确下界: ω \omega ω
- ω ( g ( n ) ) = f ( n ) \omega(g(n))=f(n) ω(g(n))=f(n)
- 比渐近紧确下界阶数低
记号 含义 理解 θ \theta θ 紧确界 相当于“=” O O O 紧确上界 相当于“ ⩾ \geqslant ⩾” o o o 非紧确上界 相当于“>” Ω \Omega Ω 紧确下界 相当于“ ⩽ \leqslant ⩽” ω \omega ω 非紧确下界 相当于“<”
2.2 标准记号与常用函数
-
单调性
-
向下取整与向上取整: x − 1 < ⌊ x ⌋ ⩽ x ⩽ ⌈ x ⌉ < x + 1 x-1<\lfloor x\rfloor \leqslant x\leqslant\lceil x\rceil<x+1 x−1<⌊x⌋⩽x⩽⌈x⌉<x+1
-
模运算: a m o d n = a − n ⌊ a / n ⌋ amodn=a-n\lfloor a/n\rfloor amodn=a−n⌊a/n⌋,商a/n的余数
-
阶乘: n ! n! n!
-
多重函数
-
多重对数函数
-
斐波那契数: F 0 = 0 F_0=0 F0=0
F 1 = 1 F_1=1 F1=1
F i = F i − 1 + F i − 2 F_i=F_{i-1}+F_{i-2} Fi=Fi−1+Fi−2