算法中的一些符号 O(big-Oh) Ω(big-theta) Θ(big-theta)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuxiaok/article/details/49516635

一、概述

       这是我们在算法的时间复杂度分析中经常会碰到的几个符号。符号后面括号里的是他们相应的读法。简单来说,第一个符号的意义相当于“小于等于”;第二个符号的意义相当于“大于等于”;第三个符号的意义相当于“等于”。其实还有一个o(little-oh),它的意义相当于“小于”,这里不做讨论。后面的讨论中都用比较通俗的话语来叙述,当然也是为了方便书写。


二、意义

O(big-Oh):

       首先,这是我们在学习工作中描述算法时间复杂度用的最普遍的符号。它是渐进上界,其作用是将我们得到的算法在最坏情况下(worst case)时间复杂度表达式简化成对应的多项式(比如n^2等)。所以在我们证明的过程中,目的是证明我们的式子要“小于等于”目标多项式。


Ω(big-Omega):

      这个符号我们一般用的比较少,一个是因为我们一般不会去考虑算法运行时间的下界,另一个是因为下界时间也不好证明。没错,他就是渐进下界,其作用是将我们得到的算法在最好情况下(best case)时间复杂度表达式简化成对应的多项式(也比如n^2等)。所以在我们证明的过程中,目的是证明我们的式子要“大于等于”目标多项式。


Θ(big-theta):

      如果O和Ω可以用同一个多项式表示,那么这个多项式就是我们所要求的渐进紧的界了。其作用是将我们可以较准确地得到算法的时间复杂度表达式对应的多项式(也比如n^2等)。所以在我们证明的过程中,目的是证明我们的式子要“等于”目标多项式。



三、总结

      一般来说,我们在学习工作中用O的频率比较高,它也是我们比较关心的算法描述符号。所以如果记不住就先记住它吧!

展开阅读全文

没有更多推荐了,返回首页