一、函数的渐近的界

  我们在研究算法性能的时候,往往会在意算法的运行时间,而运行时间又与算法输入的规模相关,对于一个算法,我们可以求出运行时间和输入规模的函数,当输入规模足够大时,站在极限的角度看,就可以求出运行时间如何随着输入规模的无限增长而增长。
  这种令输入规模无限大 而研究运行时间增长情况的做法,就是在研究算法的渐近效率。

几种符号的直观理解:
 
Θ,O,Ω的图像表示

Θ(渐近紧确界):若 f ( n ) = Θ ( g ( n )),则存在 c1>0 ,c2 >0,s.t. n→∞时, f ( n )夹在 c1 g ( n )和 c2 g ( n )之间。即g(n)既是f(n)的渐近上界又是渐近下界,可假装理解为”f(n) = g(n)“
且当 f ( n ) = Θ ( g ( n ))时,有:

 
 

O (渐近上界):若f ( n ) = O ( g ( n )),则存在c>0, s.t. n→∞时,f(n)在cg(n)下面。即g(n)是f(n)的渐近上界,可假装理解为“f(n) <= g(n)”
o (非渐近紧确上界):与O的区别是,任意c>0, 都使f(n)在cg(n)下面。是非紧的上界,可假装理解为“f(n) < g(n)”
且当f ( n ) = o ( g ( n ))时,有:

 
 

Ω (渐近上界):若f ( n ) = Ω ( g ( n )),则存在c>0, s.t. n→∞时,f(n)在cg(n)上面。即g(n)是f(n)的渐近下界,可假装理解为“f(n) >= g(n)”
ω (非渐近紧确下界):与Ω的区别是,任意c>0, 都使f(n)在cg(n)上面。是非紧的下界,可假装理解为“f(n) > g(n)”
且当f ( n ) = ω ( g ( n ))时,有:

 
 

二、几个重要结论(阶的比较)

基本函数类:

至少指数级:
多项式级:
对数多项式级:
多项式函数<指数函数:
对数函数<幂函数:

对数函数:

(1)(换底)
(2) (α>0)
(3)(即,形如指数函数的幂是log级,则可化成多项式级)

指数函数与阶乘:

Stirling公式:


作者:楠子小先生
链接:https://www.jianshu.com/p/b9e4126e5bce
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

函数的渐近的界&阶的比较的更多相关文章

  1. algorithms中计算时间的渐近表示

    1.大写Ο符号大写Ο符号给出了函数f的一个上限. 定义[大写Ο符号]:f(n)=Ο(g(n)),当且仅当存在正的常数c和n0,使得对于所有的n≥n0,有 f(n)≤c*g(n) 上述定义表明,函数f至 ...

  2. [MIT Intro. to algo]Lecture 1: 课程介绍,算法优势,插入算法和归并算法分析,渐近符号

    The theoretical study of computer program performance and resource useage.   First, analysis and the ...

  3. 基于GMC/umat的复合材料宏细观渐近损伤分析(一)

    近期在开展基于GMC/umat的复合材料宏细观渐近损伤分析,一些技术细节分享如下: 1.理论基础 针对连续纤维增强复合材料,可以通过离散化获得如下的模型: (a)(b)(c) 图1 连续纤维增强复合材 ...

  4. 年轻的心与渐行渐近的梦——记微软-斯坦福产品设计创新课程ME310

    作者:中国科学技术大学 王牧 Stanford  D. School 2014年6月,沐浴着加州的阳光,在斯坦福大学(下文简称Stanford)完成汇报后,历时一年的创新设计课程ME310的项目结束 ...

  5. 深入理解javascript函数进阶系列第一篇——高阶函数

    前面的话 前面的函数系列中介绍了函数的基础用法.从本文开始,将介绍javascript函数进阶系列,本文将详细介绍高阶函数 定义 高阶函数(higher-order function)指操作函数的函数 ...

  6. Python序列函数、高级特性及高阶函数

    序列函数: enumerate: for循环时记录索引,逐个返回元组(i, item) sorted:返回新的有序列表 zip:压缩将多个序列的对应位置的元素组成元组 zip(*元组列表): 解压缩 ...

  7. Python开发——函数【装饰器、高阶函数、函数嵌套、闭包】

    装饰器 装饰器本质就是函数,为其他函数添加附加功能. 原则: 不修改被修饰函数的源代码 不修改被修饰函数的调用方法 装饰器知识储备:装饰器 = 高阶函数 + 函数嵌套 + 闭包 案例:求函数运行时间! ...

  8. Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法

    知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...

  9. pyhton 函数参数,递归函数,高阶函数(一点点笔记)

    '''def test(x,y): print(x) print(y)test(2,y=3)def test(*args):#参数可以是不确定的多个数,接受N个位置参数,转换成元组形式 print(a ...

随机推荐

  1. c++中merge的操作

    merge:将两个有序序列合并成一个新的序列,并对新的序列排序 所在库:<algorithm> 注意:排序规则必须和原序列规则相同.存储时下标从0开始. 函数参数:merge(first1 ...

  2. HR招聘_(八)_招聘方法论(面试环节·问题设计)

    基本情况: 您目前是在职还是离职?最快的到岗时间是? 目前的薪资情况如何,期望薪资是? 您是哪里人,单身吗? 动机判断: 您看机会主要考虑哪些因素? 最重要的是什么? 未来两三年的职业规划是? 您住在 ...

  3. webpack学习之—— Configuration(配置)

    你可能已经注意到,很少有 webpack 配置看起来很完全相同.这是因为 webpack 的配置文件,是导出一个对象的 JavaScript 文件.此对象,由 webpack 根据对象定义的属性进行解 ...

  4. Chrome进行多分辨率测试

    在Web开发中,经常需要在不同的浏览器分辨率下进行测试,以确认页面是否可以适应不同的分辨率. 下载Resolution Test扩展程序 下载地址:http://pan.baidu.com/s/1gf ...

  5. 统计Linux下的CPU状态信息

    def cpu(): all_cpus=[] with open('e:/cpu.txt') as f: core={} for line in f.readlines(): ab=line.spli ...

  6. GDSOI2017第三轮模拟4.21 总结

    1 第一题看着就觉得猎奇,于是就想着打暴力就跑. 但是很严重的问题就是... \(D\)和\(B\)打反了,都不知道当时在干什么??? 原本可以拿35. 2 第二题看着就觉得套路,于是想着今天就攻这题 ...

  7. Node环境变量 process.env 的那些事儿

    前言 这两天在和运维GG搞部署项目的事儿. 碰到一个问题就是,咱们的dev,uat,product环境的问题. 因为是前后端分离,所以在开发和部署的过程中会有对后端接口的域名的切换问题.折腾了一下午, ...

  8. 优化SQL之最佳索引

    SQL优化工具Tosska SQL Tuning Expert for Oracle,帮助SQL开发人员解决SQL性能问题. 本工具主要创始人Richard To, 资深ITPUB元老,从1996年开 ...

  9. Python 正则表达式解析HTML

  10. pandas使用手册

    工欲善其事必先利其器,在使用Python做数据挖掘和数据分析时,一大必不可少的利器就是Pandas库了.pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,其纳入了大量库 ...