版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shanpenghui/article/details/83857771
渐近记号
Θ记号
对于一个给定的函数g(n),用
Θ(g(n))来表示以下函数的集合:
Θ(g(n))={f(n):存在正常量c1、c2和n0,使得对所有n≥n0,有0≤c1(n)≤f(n)≤c2g(n)}
Θ(g(n))的定义要求每个成员f(n)
∈
Θ(g(n))均为渐近非负,即当n足够大时,f(n)非负。
O记号
当只有一个渐近上界时,使用O记号。对于给定的函数g(n),用O(g(n))(读作“大O(g(n))”)来表示以下函数的集合:
O(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤f(n)≤cg(n)}
Ω记号
Ω记号提供了渐近下界。对于给定的函数g(n),用
Ω(g(n))(读作“大
Ω(g(n))”)来表示以下函数的集合:
Ω(g(n))={f(n):存在正常量c和n0,使得对所有n≥n0,有0≤cg(n)≤f(n)}
o记号
由O记号提供的渐近上界可能是也可能不是渐近紧确的。界2n2=O(n2)是渐近紧确的,但是界2n=O(n2)却不是。我们使用o记号来表示一个非渐近紧确的上界。形式化地定义o(g(n))为以下集合:
o(g(n))={f(n):存在正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤f(n)<cg(n)}
例如2n=o(n2),但是2n2≠o(n2)。
O记号与o记号的定义类似。主要的区别是在f(n)=O(g(n))中,界0≤f(n)≤cg(n)对某个常量c>0成立,但在f(n)=o(g(n))中,界0≤f(n)<cg(n)对所有常量c>0成立。直观上,在o记号中,当n趋于无穷时,函数f(n)相对于g(n)来说变得微不足道了,即:
n→∞limg(n)f(n)=0
ω记号
ω记号与
Ω记号的关系类似于o记号与O记号的关系。我们使用
ω记号来表示一个非渐近紧确的下界。定义它的一种方式是:
f(n)∈ω(g(n))当且仅当g(n)∈o(f(n))
然而,我们形式化地定义定义
ω(g(n))为以下集合:
ω(g(n))={f(n):对任意正常量c>0,存在常量n0>0,使得对所有n≥n0,有0≤cg(n)<f(n)}
假如:n2/2=
ω(n),但是n2/2≠
ω(n)。关系f(n)=
ω(g(n))蕴涵着
n→∞limg(n)f(n)=∞
也就是说,如果这个极限存在,那么当n区域无穷大时,f(n)相对于g(n)来说变得任意大了。