第一次在《算法导论》中看到这三种渐进记法的符号,当时对此一窍不通,所以也就没有注意它们,直接把他们忽略了,知道学习算法的时候,才知道当初的做法有多傻,因为一个算法的好坏以及复杂度,可以用它们来表示。现在我学习过程当中用的最多的是O(g(n)),大概是老师认为我们还不具有算法设计分析与优化的能力吧。

先声明一下:本文不会对算法的时间复杂度和空间复杂度进行讨论,大家可以查看别的博客。^_^

好了,首先介绍一下这三个符号吧。

符号 含义
O 渐进小于或等于
Ω 渐进大于或等于
Θ 渐进等于

其实大家一看到本文的标题,就应该猜到这几个符号的用法与高等数学有关,因为“渐进”两个字,比如在高等数学中经常听到渐进线之说。

请看以下两个举例:

如果a=x^2+x,b=x^2+5,则称a与b是相同等级的,且a渐进等于b;

如果a=x^2+x,b=x^3+5,则称a与b不是相同等级的,且a渐进小于或等于b,b渐进大于或等于a。

其中判断a和b是不是两个相同等级的,是依靠比较两个式子中自变量最高的次数,a=x^2+x中自变量最高次数为2,b=x^3+5中自变量最高次数为3。

如果两个自变量的最高次数相同,则说明它们是相同等级的,即他们俩渐进相等,如果其中一个的次数比另一个高,则称次数低的一个式子渐进小于或等于次数高的式子,次数高的一个式子渐进大于或等于次数低的式子。注意不要关注他们的系数谁大谁小。

现在用符号表示语言:

a=x^2+x,b=x^2+5;====>a=Θ(b);

a=x^2+x,b=x^3+5;====>a=O(b)或者b=Ω(a);

其实,这个只要明白比较的是什么就能理解三个符号的含义及用法了。

简记为:O表示上界,Ω表示下界,Θ表示平行。

渐进记法(O,Ω,Θ)的更多相关文章

  1. 【Python算法】渐进记法 与 性能测量工具cProfile

    对于某个比较简单的算法,我们有时候确实能够精确地分析出算法的复杂度. 比如算法复杂度为5n^2+10n+6,但是事实上并不需要这样,因为当n足够大时,可以忽略掉低阶项和最高次项的系数,因此就引出了“渐 ...

  2. Python Algorithms – chapter2 基础知识

    一.渐进记法 三个重要的记号 Ο.Ω.Θ,Ο记法表示渐进上界,Ω记法表示渐进下界,Θ记法同时提供了函数的上下界 几种常见的渐进运行时间实例 三种重要情况 最好的情况,最坏的情况,平均情况 最坏的情况通 ...

  3. AVL tree 高度上下界推导

    1. 最大高度对应 Node 数量 \(N_{h}\) 的递归公式 设有一棵 AVL tree 的高度为 \(h\), 对于该树, 构成该树的最少 node 数量为 \(N_{h}\) . 有: 最坏 ...

  4. ipv4理论知识1-ipv4介绍,ipv4记法,地址段个数算法

    定义 在TCP/IP协议中,用于在IP层识别连接到因特网设备的标识符称为因特网地址或IP地址.IPv4地址是一个32位的地址. 地址空间 像IPv4这种定义了地址的协议都有一个地址空间.地址空间就是协 ...

  5. [PCL]点云渐进形态学滤波

    PCL支持点云的形态学滤波,四种操作:侵蚀.膨胀.开(先侵蚀后膨胀).闭(先膨胀后侵蚀) 在#include <pcl/filters/morphological_filter.h>中定义 ...

  6. JPG渐进 & PNG/PNG24 交错测试

    今天由同事说起,PS导出PNG时,有个选项"交错"是干啥的,想起这也是个问题,所以特意搞了个测试页面: 引用网上"交错-就是类似旧式电视的隔行扫描,让图片只花50%的时间 ...

  7. css优雅降级和渐进增强

    今天看前端公众号发布的文章,学到了几个新词 1.modernizr 2.@support 3.优雅降级 其中第三个“优雅降级”,如此文艺的名字居然还是第一次听到.度娘了一下,发现[优雅降级],[渐进增 ...

  8. web前端的渐进增强式开发模型

    渐进增强是前端开发的根本基础.从根本的层面上讲,它可以将HTML,CSS,JavaScript这三者的功能分离开来,这能让当前的项目开一个好头.我们在创建项目的开始要将这三者分开,它们对应的称呼是结构 ...

  9. 渐进记号 Asymptotic Notations-------geeksforgeeks 翻译

    我们已经简单的讨论了下渐进分析以及最坏,平均和最佳情况的分析.渐进分析的主要思想是分析算法的效率,不用依靠计算机的具体快慢,不需要实现这个算法,也不需要真正去计算时间.渐进记号是一种数学的工具来表示渐 ...

随机推荐

  1. Javascript的"预编译"思考

    今天工作需要,搜索下JS面试题,看到一个题目,大约是这样的 <script> var x = 1, y = z = 0; function add(n) { n = n+1;  } y = ...

  2. 你不知道的JavaScript--DOM基础详解2

    转载:http://blog.csdn.net/i10630226/article/details/49785165 先上几张图简要看看DOM的一些方法属性: 大概这些就是常用的,下面具体聊聊. 节点 ...

  3. jsp 文件引入

    <!-- 清除浏览器中的缓存,它和其它几句合起来用,就可以使你再次进入曾经访问过的页面时,ie浏览器必须从服务端下载最新的内容,达到刷新的效果. --><meta http-equi ...

  4. JSON Viewer

    http://jsonviewer.codeplex.com/ jsoneditor https://github.com/josdejong/jsoneditor

  5. SELECTION-SCREEN 加按钮

    这是我喜欢的这种模式,选择屏加个新建按钮,直接跳转到主屏幕做单据. 选择屏就直接查询,双击查询结果跳转到主屏幕.... 做好编辑控制,事件处理...EVERYTHING IS SOOOOOOO NIC ...

  6. IDOC创建、发送、接收及程序代码[转]

    什么是IDOC,以及IDOC的步骤   创建IDOC:   第一步:WE31 创建IDOC所包含的字段.   第二步:WE30 创建IDOC 把Segment分配给IDOC   第三步:WE81  创 ...

  7. 分形树Fractal tree介绍——具体如何结合TokuDB还没有太懂,先记住其和LSM都是一样的适合写密集

    在目前的Mysql数据库中,使用最广泛的是innodb存储引擎.innodb确实是个很不错的存储引擎,就连高性能Mysql里都说了,如果不是有什么很特别的要求,innodb就是最好的选择.当然,这偏文 ...

  8. perl 正则匹配代码

    36     chomp $line; 37     my @vec = split /\t/, $line; 38     my @vec2 = ($vec[1]=~/[a-z]+/g); 39   ...

  9. 使用tomcat配置文件下载服务器,自定义下载列表

    先上图,利用tomcat,这个下载界面没有代码,点击文件名即可下载 详细参考:http://tomcat.apache.org/tomcat-7.0-doc/default-servlet.html

  10. easyui datagrid高度自适应问题

    最近在使用datagrid的时候,发现在panel中嵌入一个datagrid时,当panel缩小时,datagrid下面会有一块空白,datagrid高度不能自适应,解决方法是在datagrid外面加 ...