目录:
- 1.渐近精确界记号:
Θ (big-theta) - 2.渐近上界记号 :
O (big-oh) - 3.渐近下界记号 :
Ω (big-omege) - 4.非渐近紧确上界:o(小-oh)
- 5.非渐近紧确下界:ω(小-omege)
- 6.渐近记号Θ、Ο、o、Ω、ω关系
- 7.参考资料
1.渐近精确界记号:
Θ
(big-theta)
假设算法A的运行时间表达式
假设算法B的运行时间表达式
当问题规模足够大的时候,例如n=100万,算法的运行时间将主要取决于时间表达式的第一项,其它项的执行时间只有它的几十万分之一,可以忽略不计。第一项的常数系数,随着n的增大,对算法的执行时间也变得不重要了。
于是,算法A的运行时间可以记为:
Θ 的数学含义
方式一:设f(n) 和g(n) 是定义域为自然数集合的函数。如果limn→∞f(n)g(n) 存在,并且等于某个常数c(c>0) ,那么f(n)=Θ(g(n)) 。通俗理解为f(n)和g(n) 同阶,Θ 用来表示算法的精确阶。方式二:
Θ(g(n)) ={f(n) :存在正常量c1、c2和n0 ,使得对所有n≥n0 ,有0≤c1g(n)≤f(n)≤c2g(n) }若存在正常量c1、c2 ,使得对于足够大的n,函数f(n) 能“夹入”c1g(n)与c2g(n) 之间,则f(n) 属于集合Θ(g(n)) ,记作f(n)∈Θ(g(n)) 。作为代替,我们通常记“f(n)=Θ(g(n)) ”。
由下图中左侧
需要注意的是:
2.渐近上界记号:
O
(big-oh)
定义:设
f(n)和g(n) 是定义域为自然数集N 上的函数。若存在正数c和n0 ,使得对一切n≥n0 都有0≤f(n)≤cg(n) 成立,则称f(n) 的渐进的上界是g(n) ,记作f(n)=O(g(n)) 。通俗的说n满足一定条件范围内,函数f(n) 的阶不高于函数g(n) 。
根据符号
例如:设
f(n)=n2+n ,则
f(n)=O(n2) ,取c=2 ,n0=1 即可
f(n)=O(n3) ,取c=1 ,n0=2 即可。显然,O(n2) 作为上界更为精确。
几种常见的复杂度关系
O(1)<O(log(n))<O(n)<O(nlogn)< O(n2)<O(2n)<O(n!)<O(nn)
需要注意的是:对数函数在没有底数时,默认底数为2;如lgn=logn=log2n 因为计算机中很多程序是用二分法实现的。
符号用法测试:素数测试
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
在上面这个素数测试的例子中,基本运算是整除;时间复杂度
3.渐近下界记号:
Ω
(big-omege)
定义:设
f(n)和g(n) 是定义域为自然数集N 上的函数。若存在正数c和n0 ,使得对一切n≥n0 都有0≤cg(n)≤f(n) 成立,则称f(n) 的渐进的下界是g(n) ,记作f(n)=Ω(g(n)) 。通俗的说n满足一定条件范围内,函数f(n) 的阶不低于函数g(n) 。
根据符号
例如:设
f(n)=n2+n ,则
f(n)=Ω(n2) ,取c=1 ,n0=1 即可
f(n)=Ω(100n) ,取c=1/100 ,n0=1 即可
显然,
4.非渐近紧确上界:o(小-oh)
定义1:设
f(n)和g(n) 是定义域为自然数集N 上的函数。若对于任意正数c,都存在n0 ,使得对一切n≥n0 都有0≤f(n)<cg(n) 成立,则称f(n) 的渐进的非紧确上界是g(n) ,记作f(n)=o(g(n)) 。通俗的说n满足一定条件范围内,函数f(n) 的阶低于函数g(n) 。
定义2:设f(n) 和g(n) 是定义域为自然数集合的函数。如果limn→∞f(n)g(n)=0 ,那么f(n)=o(g(n)) 。通俗理解为f(n)低于g(n) 的阶。
由
例子:
5.非渐近紧确下界:ω(小-omege)
定义1:设
f(n)和g(n) 是定义域为自然数集N 上的函数。若对于任意正数c,都存在n0 ,使得对一切n≥n0 都有0≤cg(n)<f(n) 成立,则称f(n) 的渐进的非紧确下界是g(n) ,记作f(n)=ω(g(n)) 。通俗的说n满足一定条件范围内,函数f(n) 的阶高于函数g(n) 。
定义2:设f(n) 和g(n) 是定义域为自然数集合的函数。如果limn→∞f(n)g(n)=∞ ,那么f(n)=o(g(n)) 。通俗理解为f(n)高于g(n) 的阶。
例子:
6.渐近记号Θ、Ο、o、Ω、ω关系
记号 | 含义 | 通俗理解 |
---|---|---|
(1)Θ(西塔) | 紧确界。 | 相当于”=” |
(2)O (大欧) | 上界。 | 相当于”<=” |
(3)o(小欧) | 非紧的上界。 | 相当于”<” |
(4)Ω(大欧米伽) | 下界。 | 相当于”>=” |
(5)ω(小欧米伽) | 非紧的下界。 | 相当于”>” |