算法度量 Big O, Big Omega, Big Theta

A、大O的定义:
  如果存在正数c和N,对于所有的n>=N,有f(n)<=c*g(n),则f(n)=O(g(n))
B、Big Omega的定义
  如果存在正数c和N,对于所有的n>=N,有f(n)>=c*g(n),则f(n)=Omega(g(n))
C、Big Theta的定义

  如果存在正数c1,c2和N,对于所有的n>=N,有c1*g(n)<=f(n)<=c2*g(n),则f(n)=Theta(g(n))

 

1、O是一个算法最坏情况的度量(g(n)是这个算法的上界,用上界来衡量,是最坏的情况)
2、Big Omega是最好情况的度量(g(n)是这个算法复杂度的下界,用下界来衡量,是最好的情况)
3、Big Theta表达了一个算法的区间,不会好于某某,不会坏于某某

 

参考:

http://blog.csdn.net/yuankaining/archive/2008/08/06/2779275.aspx 

http://xushixiong.vip.blog.163.com/blog/static/81094067200811184214426/ 

posted on 2009-12-04 17:56  lbsx  阅读(4611)  评论(0编辑  收藏  举报