【算法和数据结构】算法导论2~3章
一、算法导论2~3章知识点

二、函数的增长
1、渐近记号概念
渐近记号主要是用来刻画算法的运行时间
有时候我们对算法的最坏运行时间感兴趣,然而我们常常希望刻画任何输入的运行时间。希望做出一种综合性地覆盖所有输入,而不仅仅是最坏情况的陈述。
例子:
如插入排序的算法的运行时间的计算函数:T(n)=4n²-3n
则该插入排序的算法的渐近紧确界的标记符号:θ(n²)(非形式化的表述,扔掉低阶项,去掉高阶项的系数)
则需要证明 C1*n²<=4n²-3n<=C2*n²(其中C1,C2为常量)
推导过程:
1、两边除以n²得到结果:C1<=4-3/n<=C2
2、1<=C1<4,则左边C1<4-3/n成立
3、C2>=1,则4-3/n<=C2成立
结论:
C1=1
C2=2
n0=1
2、渐近记号
| 记号 | 含义 | 通俗理解 |
|---|---|---|
| (1)Θ(西塔) | 渐近紧确界。 | 相当于"=" |
| (2)O (大欧) | 渐近上界。 | 相当于"<=" |
| (3)o(小欧) | 非紧的上界。 | 相当于"<" |
| (4)Ω(大欧米伽) | 渐近下界。 | 相当于">=" |
| (5)ω(小欧米伽) | 非紧的下界。 | 相当于">" |
θ(g(n))含义
f(n):存在正常量C1,C2,n0,使得对所有n>=n0,有 0<= C1*g(n) <= f(n) <= C2*g(n)
则θ(g(n))是函数f(n)的渐近紧确界的表达式
例子: θ(n²) 是插入排序 f(n)=4n²-3n 的渐近紧确界的表达式
O(g(n))含义
f(n):存在正常量C1和n0,使得对所有n>=n0,有0<= f(n) <= C1*g(n)
3、渐近函数

3、渐近函数的关系

浙公网安备 33010602011771号