本章内容
1.一些记号
a. ⌊x⌋ 表示小于等于x的最大整数;
b. ⌈x⌉ 表示大于等于x的最小整数;
即:
x−1<⌊x⌋≤x≤⌈x⌉≤x+1
c. ⌊x⌋ log(n)=lg(n)=log2(n)
为何此处不显示log(n)=lg(n)=log2(n)
d. In(n)=loge(n)
2.复杂性函数的阶
2.1. 渐近复杂性
定义:当输入规模趋于极限情形时的复杂性
表示复杂性阶的三个记号:
a. T(n)=O(f(n))
若存在c>0,和正整数n0≥1,使得当n≥n0时, 有T(n)≤c∗f(n)成立,
给出算法复杂度的上界,不可能比c∗f(n)更大;
b. T(n)=Ω(f(n))
若存在c>0,和正整数n0≥1,使得当n≥n0时, 有T(n)≥c∗f(n)成立,
给出算法复杂度的下界,不可能比c∗f(n)更小;
c. T(n)=Θ(f(n))
若存在c1,c2>0,和正整数n0≥1,使得当n≥n0时, 有c1∗f(n)≤T(n)≤c2∗f(n)成立,
给出算法复杂度的上界和下界
2.2多项式时间与指数时间
设每秒可做某基本运算109次,n=60:
| |
算法1 |
算法2 |
算法3 |
算法4 |
算法5 |
算法6 |
| 复杂度 |
n |
n2 |
n3 |
n5 |
2n |
3n |
| 时间 |
6∗10−8s |
3.6∗10−6s |
2.16∗10−4s |
0.013min |
3.66世纪 |
1.3∗1013世纪 |
根据上表可以得出结论:
- 多项式时间的算法互相之间虽有差距,一般可接受
- 指数量级时间的算法对于较大的 n 无实用价值