Asymptotic Analysis——渐近分析

来源:互联网 发布:yii2 cms 编辑:程序博客网 时间:2024/05/16 09:41


上图主要介绍的是渐进分析的动机是什么。

  • 高级推理算法的“灵魂”(翻译水平有限,不知道合适不合适,若有好的翻译请告诉我,或者你直接看英文原版吧)
  • 不关注架构/语言/编译器的相关细节(意为只关注算法本身)
  • 对于不同算法的比较特别有用,尤其是在大型输入(例如排序或整数乘法)


不关注常数因子和低阶项,举了一个例子 6nlog2n+6去除常数因子6和低阶项6得到nlogn,用术语讲就是运行时间为O(nlogn),n指的是输入的规模(例如数组的长度)
下面是几道例题,
第一道:

第二道:

第三道:

第四道:


Big-Oh:Definition


当只有一个渐进上界时,使用O记号,通常来讲,它来限制算法的最坏情况运行时间。


c与n0都是正常量

基础例子:
Example#1


Example#2


Omega Notation

正如O记号提供了一个函数的渐近上界,Ω记号提供了渐近下界



Theta Notation

Θ里的内容取不同的两个系数可表示函数渐近上、下界

总结三者关系,看图:


Θ,O,Ω记号的图例。在每个部分,标出的n0的值是最小的可能值,任何更大的值也将有效。第一幅图Θ限制一个函数在常量因子内。如果存在正常量n0c1c2,使得在n0及其右边,f(n)的值总位于c1g(n)之间或等于它们,那么记f(n)=Θ(g(n))第二幅图O记号为函数给出一个常量因子内的上界。如果存在正常量n0c,使得在n0及其右边,f(n)的值总小于或等于cg(n),那么记f(n)=O(g(n))第三幅图Ω记号为函数给出一个在常量因子内的下界。如果存在正常量n0c,使得在n0及其右边,f(n)的值总大于或等于cg(n),那么记f(n)=Ω(g(n))

参考资料:
算法导论
Coursera Online : Algorithms: Design and Analysis, Part 1

0 0
原创粉丝点击