一、函数的渐近的界

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

几种符号的直观理解:
 
Θ,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. NLTK的探索

    import nltk import random from nltk.corpus import movie_reviews documents = [(list(movie_reviews.wor ...

  2. python中在计算机视觉中的库及基础用法

    基于python脚本语开发的数字图像处理包有很多,常见的比如PIL.Pillow.opencv.scikit-image等.PIL和pillow只提供了基础的数字图像处理,功能有限:OpenCV实际上 ...

  3. web前端学习常用网址记录

    jetbrains下载各种软件和试用 www.jetbrains.com www.jetbrains.com/idea php服务器下载 php文档查询 php.net webAPI网站(各种教程文档 ...

  4. ubuntu安装verilog

    1.安装verilog sudo apt-get install verilog 2.安装gtkwave sudo apt-get install gtkwave 3.安装dinotrace(和gtk ...

  5. JDK8 Stream 数据流效率分析

    JDK8 Stream 数据流效率分析 Stream 是Java SE 8类库中新增的关键抽象,它被定义于 java.util.stream (这个包里有若干流类型: Stream<T> ...

  6. 关于chrome浏览器的帐号密码自动填充以及出现的黄色背景色填充问题

    不知道大家平时做项目的时候有木有关注这个问题,其实之前做项目遇到过类似的问题,但是因为是单独的chrome浏览器的填充,而且是样式问题稍微严重点,也就没在意.然而在近期的项目中有遇到了这个问题,最为一 ...

  7. Leetcode872.Leaf-Similar Trees叶子相似的树

    请考虑一颗二叉树上所有的叶子,这些叶子的值按从左到右的顺序排列形成一个 叶值序列 . 举个例子,如上图所示,给定一颗叶值序列为 (6, 7, 4, 9, 8) 的树. 如果有两颗二叉树的叶值序列是相同 ...

  8. MaxCompute推出面向开发者的专属版本,普惠大数据开发者

    3月20号,阿里云正式对外宣布推出MaxCompute产品的新规格-开发者版.MaxCompute开发者版是阿里云大数据计算服务发布的开发者专属版本.区别于原有的按量付费.按CU预付费规格,开发者版是 ...

  9. iOS 9 学习系列:Split Screen Multitasking

    http://www.cocoachina.com/ios/20151010/13601.html iOS 9 的一个重大变化就是增加了多任务,这个多任务允许用户在屏幕上同时运行多个 app.有两种形 ...

  10. zabbix监控docker容器

    1.环境说明 由于最近zabbix进行过一次迁移,所以zabbix-server系列采用docker方式安装,参考zabbix官网:https://github.com/zabbix/zabbix-d ...