算法基础-渐进记号

引言:

对于某个比较简单的算法,我们有时候确实能够精确地分析出算法的复杂度,比如算法复杂度为n^2+2n+2,但是事实上并不需要这样,因为当n足够大时,可以忽略掉低阶项和最高次项的系数,因此就引出了“渐近复杂度”,并且用“渐近记号”来表示“渐近复杂度”。今天小编简单介绍3中常用的标准方法来简化算法的渐进分析。

O记号:

大O表示渐进上界,相当于“<=”.O(g(n))={f(n):存在正常数c和N0,使对所有的n>=n0,都有0<=f(n)<=cg(n)}。

如上图所示,对于函数f(n),在x>n0时,恒有cg(n)无限接近且大于f(n).此时,就称cg(n)函数为f(n)函数的渐进上界。

举个栗子:

f(n)=0.5n^2+4n,则可以表示为f(n)=O(n^2)。证明:要使得0<=f(n)<=cg(n)

f(n)=0.5n^2+4n<=cg(n)=cn^2

0.5n+4<=cn

c-0.5>=4/n

存在c=9/2,n0=1,是的对所有的n>=n0都有0<=f(n)<=cg(n).


posted @ 2016-11-20 13:54  幻想泡沫  阅读(364)  评论(0编辑  收藏  举报