麻省理工学院公开课-第二讲:渐进符号、递归及解法

 http://deepin.iteye.com/blog/1340431

http://blog.csdn.net/julius819/article/details/8267060

 http://www.cnblogs.com/banli/archive/2013/05/21/3089900.html

直接复制过来的:

 

所有记号都表示一切满足条件的函数的集合。

 

1、Θ记号  Θ(g(n)) = { f(n) : 若存在正常数c1,c2和n0,使对所有n>=n0时有0<=c1*g(n)<=f(n)<=c2*g(n)}

 

其效果相当于删除f(n)中的低阶项,并忽略最高阶项的系数。

 

2、Ο记号 Ο(g(n)) = { f(n) : 存在正常数c和n0,使对所有n>=n0,有0<=f(n)<=c*g(n) }

 

Ο记号在一个常数因子内给出某函数的一个上界。f(n) = Ο(g(n))表示f(n)是集合O(g(n))的一个元素。f(n) = Θ(g(n))隐含着f(n) = Ο(g(n)),因为Θ记号强于Ο记号。对f(n) = Ο(g(n))只能说明g(n)的某个常数倍是f(n)的渐近上界,而不反映该上界如何接近。Ο记号在用作对算法最坏情况运行时间的上界时就有对任意输入的运行时间的上界。

 

3、Ω记号 Ω(g(n)) = { f(n) : 存在正常数c和n0,使所有n>=n0有0<=c*g(n)<=f(n) }

 

Ω记号给出一个函数的渐近下界。

 

对于上面三种,有下面的定理:

 

对任意两个函数f(n)和g(n),f(n) = Θ(g(n))当且仅当f(n) = Ο(g(n))和f(n) = Ω(g(n)).

 

4、其它符号

 

ο记号:Ο记号提供的渐近上界可能是也可能不是渐近紧确的。2n^2 = Ο(n^2)是渐近紧确的,而2n = O(n^2)不是。而o记号用来表示非渐近紧确的。 o(g(n)) = { f(n) : 对任意正常数c,存在正常数n0,使对所有n>=n0,有0<=f(n)<=c*g(n) }

 

ω记号:ω记号与Ω记号的关系和o记号与Ο记号的关系一样,不在多说。

 

 

 

总之,可以这样理解,Θ记号相当于"=",Ο相当于“<=",Ω相当于”>=",o相当于“<",ω相当于">".这样理解只用于区别不同渐近记号间的关系,其实每个渐近记号为一个函数集合,而非两个数关系那样的。

 

posted @ 2015-06-11 17:47  菜鸟_xf  阅读(180)  评论(0编辑  收藏  举报