一、概述

Ο,读音:big-oh;表示上界,小于等于。

Ω,读音:big omega、欧米伽;表示下界,大于等于。

Θ,读音:theta、西塔;既是上界也是下界,称为确界,等于。

ο,读音:small-oh;表示上界,小于。

ω,读音:small omega;表示下界,大于。

Ο是渐进上界,Ω是渐进下界。Θ需同时满足大Ο和Ω,故称为确界。Ο极其有用,因为它表示了最差性能。

二、对常见的Ο和Ω进行分析

2.1 大O表示法
大O是我们在分析算法复杂度时最常用的一种表示法。

f(x) = O(g(x)) 表示的含义是f(x)以g(x)为上界

当函数的大小只有上界,没有明确下界的时候,则可以使用大O表示法,该渐进描述符一般用于描述算法的 最坏复杂度

f(x) = O(g(x))正式的数学定义:存在正常数c、n、n0,当 n>n0 的时,任意的 f(n) 符合 0 <= f(n) <= c.g(n)。如下图所示

我们在分析各种排序算法时,一般都使用大O来表现算法的性能。当然,我们这里以一个很简单的嵌套循环为例,在分析这种简单算法的复杂度时,我们通常计算其中 关键步骤的执行次数 作为此算法的时间复杂度。

for (int i = 0; i < n; i++) {for (int j = i; j < n; j++) {...        // 关键步骤}}

该算法外层执行了 n 次循环,如果内层也是 n 次循环,我们便可知道该算法时间复杂度为 n^2,但是该算法内层执行的循环次数会随着外层循环的进行依次减少,最大为n。所以,我们便可以确定该算法的时间复杂度有一个上界 n^2,即T(n) = O(n^2)

根据之前的介绍:即双重for循环的最差执行次数为 n^2,也就是O(n^2)。

常见的时间复杂度如图所示:

所耗时间从小到大依次是:

我们可以画一个函数图像清晰的看每个复杂度的时间对比:

2.2 大Ω表示法

大Ω是我们在分析算法复杂度时另外最常用的一种表示法。

f(x) = Ω(g(x)) 表示的含义是f(x)以g(x)为下界

当函数的大小只有下界,没有明确的上界的时候,可以使用大Ω表示法,该渐进描述符一般用与描述算法的 最优复杂度 。

f(n)= Ω(g(n)) 正式的数学定义:存在正常数c、n、n0,当 n > n0 的时,任意的 f(n) 符合 0 <= c.g(n) <= f(n)。如下图所示

从定义中,我们可以看到,大Ω是有一个下确界的,即最小是多少。

Note: 在online算法的竞争性分析中,如果算法A的性能是Ω(k),算法B的性能是Ω(k^2),由于我们要求竞争ratio越小越好,则Ω(k)优于Ω(k^2)。
————————————————
原文链接:https://blog.csdn.net/anshuai_aw1/article/details/108449000

算法分析-时间复杂度:大O、大Ω、大θ、小o、小ω相关推荐

  1. 算法时间复杂度分析——大O、大Ω、大θ、小o,小ω

    最近开始转战传统算法分析的研究工作了,重新拾起以前学过的一些内容. 目录 一.概述 二.对常见的Ο和Ω进行分析 2.1 大O表示法 2.2 大Ω表示法 三.P问题,NP问题,NP-hard问题,NPC ...

  2. 算法分析之常用符号大O、小o、大Ω符号、大Θ符号、w符号

    大O符号(英语:Big O notation),又称为渐进符号,是用于描述函数渐近行为的数学符号.更确切地说,它是用另一个(通常更简单的)函数来描述一个函数数量级的渐近上界.在数学中,它一般用来刻画被 ...

  3. 算法分析:大O符号/大Ω符号/大Θ符号/小o符号/小w符号

    感谢作者分享,原文链接:http://blog.csdn.net/u012816041/article/details/49888631 大O,渐进表示法,接下来我尝试用最简单的方式进行说明. 学习算 ...

  4. 算法分析—大O、大Ω、大θ

    前言 在算法的学习中,最开始便是要学习算法的分析.学习算法分析时,我们便会接触到这么几个符号:大O.大Ω.大θ,常常让人难以理解. 在通常的算法分析时,我们可以明白,在输入规模较小,各种算法之间的时间 ...

  5. 时间复杂度以及空间复杂度(大O的渐进表示法)

    目录 1.算法效率 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 3.空间复杂度 1.算法效率 算法效率分析分为两种:第一种是时间效率,第二种是空间效率. 时间效率被称为时间复杂 ...

  6. 以小博大外小内大,Db数据库SQL优化之小数据驱动大数据

    SQL优化中,有一条放之四海而皆准的既定方针,那就是:永远以小数据驱动大数据.其本质其实就是以小的数据样本作为驱动查询能够优化查询效率,在SQL中,涉及到不同表数据的连接.转移.或者合并,这些操作必须 ...

  7. 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度——windows上的最快拷贝软件FastCopy

    欢迎大家关注笔者,你的关注是我持续更博的最大动力 原创文章,转载告知,盗版必究 加快windows上对大文件,以及很多很多小文件进行不同磁盘拷贝的速度--windows上的最快拷贝软件FastCopy ...

  8. kettle将多个文件压缩_如何使用WinRAR将一个大文件压缩成多个小的压缩包

    目录 1.使用WinRAR将一个大文件压缩成多个小的压缩包 2.使用WinRAR将多个小的压缩包,解压/合并成一个大文件 3.结尾 / 在现实生活中,受文件大小的限制,在传输的过程往往出现困难,如:邮 ...

  9. hihoCoder 1114 小Hi小Ho的惊天大作战:扫雷·一 最详细的解题报告

    题目来源:小Hi小Ho的惊天大作战:扫雷·一 解题思路:因为只要确定了第一个是否有地雷就可以推算出后面是否有地雷(要么为0,要么为1,如果不是这两个值就说明这个方案行不通),如果两种可能中有一种成功, ...

最新文章

  1. windows 网络规划
  2. 噪声强度(噪声功率) 噪声方差到底有什么关系?
  3. ITK:将两个图像与棋盘格图案组合在一起
  4. 【转】Windows版本,OS内核版本,Windows SDK之间的关系
  5. java 对比工具_Java几款性能分析工具的对比
  6. 环形博弈 HDU - 3951
  7. XML解析模型(完整版)
  8. Origin2018安装与使用(整理中)
  9. 如何编写一个好的软件设计文档——Medium中文站
  10. twaver html5软件价格,TWaver数据中心可视化软件
  11. 单片机中断原理及定时器详解
  12. 斯坦福大学公开课:量子力学_TimelineMax:了解力学
  13. python翻页爬取豆瓣影评,翻页爬取豆瓣电影名称和评分
  14. 作用域链与原型链的区别
  15. WMS仓储管理系统在各种行业中,都有哪些作用
  16. Win7安全模式卡在ClassPNP.sys位置解决办法
  17. @Spring事务管理
  18. struts2-spring-hibernate实现员工的增删查功能
  19. 关于“ROS2 Topic-Statistics-Tutorial编译出错”的思考2
  20. slam学习(1)——卡尔曼滤波

热门文章

  1. 为什么你的前端工作经验不值钱?
  2. nginx配置反向代理验证ssl证书 双向认证
  3. 传统与现代的碰撞——脉学与HRV
  4. Android开发环境搭建+AS常用功能指导
  5. 2016php开发 饱和了吗,2016PHP程序员待遇和就业前景调查
  6. linux rsh通信实现_RSH的网络通信细节
  7. 谈谈从PC端到移动端的产品设计差异
  8. 香港等海外公司如何开通认证微信公众号?
  9. win10使用administrator登录却仍然没权限
  10. 指甲半月痕 血象和微量元素检查分析是否有贫血