函数的增长
1.Θ记号
Θ(g(n))={f(n):存在正常量c1、c2和n0,使得对所有n≥n0,有0≤c1g(n)≤f(n)≤c2g(n)}
理解为当n足够大时,f(n)能完全夹入g(n)的两个常数倍的函数值之间,因此g(n)时f(n)的一个渐进紧确界。Θ(g(n))表达的是一组函数的集合,f(n)是能归到集合里的某个具体函数。举个例子: f(n)=21n2−3n,寻找满足条件的c1,c2,使对足够大的n,c1n2≤21n2−3n≤c2n2恒成立,即c1≤21−n3≤c2,取c1≤1/14,c2≥1/2即可。因此21n2−3n=Θ(n2)。这个例子也告诉我们,函数的低阶项在确定渐进紧确界时可忽略。
2.O记号
O(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)}
因此g(n)某个常量倍数是f(n)的渐进上界,而不要求是紧确的上界。例如n=O(n2)。可能紧确也可能不紧确。
3.Ω记号
Ω(g(n))={f(n):存在正常量c和n0,使得对所有的n≥n0,有0≤cg(n)≤f(n)}
这个记号给出了f(n)的渐进下界。
若f(n)的渐进上界和渐进下界相等,则它也是f(n)的渐进确界
4.o记号
o(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤f(n)<cg(n)}
由于c的任意性,o记号给出的是非渐进紧确的上界,而且一定不可能是紧确的。
5.ω记号
ω(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤cg(n)<f(n)}
ω记号会给出非渐进紧确的下界。
6.性质
传递性 若f(n)=K(g(n)),g(n)=K(h(n)),则f(n)=K(h(n)),K=Θ,O,Ω,o,ω
自反性 f(n)=K(f(n)),K=Θ,O,Ω
对称性 f(n)=Θ(g(n))↔g(n)=Θ(f(n))
转置对称性
f(n)=O(g(n))↔g(n)=Ω(f(n))
f(n)=o(g(n))↔g(n)=ω(f(n))