科百科
当前位置: 首页 范文大全

o o o是什么意思(OΘΩ)

时间:2023-08-07 作者: 小编 阅读量: 3 栏目名: 范文大全

o o o是什么意思?本篇文章收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识,今天小编就来说说关于o o o是什么意思?下面更多详细答案一起来看看吧!

o o o是什么意思

前言

本篇文章收录于专辑:http://dwz.win/HjK,点击解锁更多数据结构与算法的知识。

你好,我是彤哥,一个每天爬二十六层楼还不忘读源码的硬核男人。

前面几节,我们一起学习了算法的复杂度如何分析,并从最坏、平均、最好以及不能使用最坏情况全方位无死角的剖析了算法的复杂度,在我们表示复杂度的时候,通常使用大O来表示。

但是,在其他书籍中,你可能还见过Θ、Ω、o、ω等符号。

那么,这些符号又是什么意思呢?

本节,我们就来解决这个问题。

读音

我们先来纠正一波读音:

O,/əʊ/,大Oh

o,/əʊ/,小oh

Θ,/ˈθiːtə/,theta

Ω,/oʊˈmeɡə/,大Omega

ω,/oʊˈmeɡə/,小omega

是不是跟老师教得不太一样^^

数学解释

Θ

Θ定义了一种精确的渐近行为(exact asymptotic behavior),怎么说呢?

用函数来表示:

对于f(n),存在正数n0、c1、c2,使得当 n>=n0 时,始终存在 0 <= c1*g(n) <= f(n) <= c2*g(n),则我们可以用 f(n)=Θ(g(n))表示。

用图来表示:

Θ同时定义了上界和下界,f(n)位于上界和下界之间,且包含等号。

比如说,f(n) = 2n^2 3n 1 = Θ(n^2),此时,g(n)就是用f(n)去掉低阶项和常数项得来的,因为肯定存在某个正数n0、c1、c2,使得 0 <= c1*n^2 <= 2n^2 3n 1 <= c2*n^2,当然,你说g(n)是2*n^2也没问题,所以,g(n)实际上满足这个条件的一组函数。

好了,如果Θ你能理解了,下面四个就好理解了。

O

O定义了算法的上界。

用函数来表示:

对于f(n),存在正数n0、c,使得当 n>=n0 时,始终存在 0 <= f(n) <= c*g(n),则我们可以用 f(n)=O(g(n))表示。

用图来表示:

O只定义上界,只要f(n)不大于c*g(n),就可以说 f(n)=O(g(n))。

比如说,对于插入排序,我们说它的时间复杂度是O(n^2),但是,如果用Θ来表示,则必须分成两条:

    最坏的情况下,它的时间复杂度为Θ(n^2);

    最好的情况下,它的时间复杂度为Θ(n)。

这里的n^2只是g(n)这一组函数中最小的上界,当然,g(n)也可以等于n^3。

不过,我们一般说复杂度都是指的最小的上界,比如,这里插入排序的时间复杂度如果说是O(n^3),从理论上来说,也没问题,只是不符合约定罢了。

插入排序最好的情况就是数组本身就是有序的。

o

o定义的也是算法的上界,不过它不包含等于,是一种不精确的上界,或者称作松上界(某些书籍翻译为非紧上界)。

用函数来表示:

对于f(n),存在正数n0、c,使得当 n>n0 时,始终存在 0 <= f(n) < c*g(n),则我们可以用 f(n)=o(g(n))表示。

用图来表示:

o表示仅仅是大O去掉等于的情况,其他行为与大O一模一样。

Ω

Ω定义了算法的下界,与O正好相反。

用函数来表示:

对于f(n),存在正数n0、c,使得当 n>=n0 时,始终存在 0 <= c*g(n) <= f(n),则我们可以用 f(n)=Ω(g(n))表示。

用图来表示:

Ω只定义下界,只要f(n)不小于c*g(n),就可以说 f(n)=Ω(g(n))。

比如,对于插入排序,我们可以说它的时间复杂度为Ω(n),不过,这通常没有什么意义,因为插入排序在最好的情况下很少,基本都是在最坏情况或者平均情况。

ω

ω同样定义的是下界,只不过不包含等于,是一种不精确的下界,或者称作松下界(某些书籍翻译为非紧下界)。

用函数来表示:

对于f(n),存在正数n0、c,使得当 n>n0 时,始终存在 0 <= c*g(n) < f(n),则我们可以用 f(n)=ω(g(n))表示。

用图来表示:

ω表示仅仅是大Ω去掉等于的情况,其他行为与大Ω一模一样。

通俗理解

符号含义通俗理解Θ精确的渐近行为相当于“=”O上界相当于“<=”o松上界相当于“<”Ω下界相当于“>=”ω松下界相当于“>”

小结

为了帮助同学们快速查阅英文资料,彤哥特地把这几节涉及到的英语单词汇总了一下:

汉语英文复杂度complexity时间复杂度time complexity空间复杂度space complexity渐近分析asymptotic analysis最坏情况the worst case最好情况the best case平均情况the average case精确的渐近行为exact asymptotic behavior低阶项low order terms常数项(前置常数)leading constants松上界loose upper-bound

后记

本节,我们分别从读音、数学、通俗理解等三个方面阐述了Θ、O、o、Ω、ω的含义,并在最后给出了这几节涉及到的术语对应的英文,有了这些英文,你也可以快速地查阅这方面的资料。

不过,在我们平时与人交流的过程中,大家还是习惯于使用大O表示法,一来它表示最坏情况,最坏情况通常可以直接代表算法的复杂度,二来它比较好书写。

所以,我们只需要记住大O就可以了,只不过在别人提到Θ、Ω、ω我们知道是什么含义就可以了。

前面几节讲了这么多,其实,还是只涉及了很简单的算法复杂度。

那么,常见的算法复杂度有哪些呢?

下一节,我们接着聊。

关注公号主“彤哥读源码”,解锁更多源码、基础、架构知识。

    推荐阅读
  • 小时候的女儿国怎么玩(5年游4国对话135位背奶妈)

    她们一边工作,一边背奶,忍受着工作和身体的双重劳累,如何平衡家庭和事业成为许多哺乳期女性的共同困扰。然而,萨曼莎的情况并不是最糟的。凯尔茜,已婚妈妈,从事商务管理,每周需要工作大约55个小时。然而,受制于低迷的社会经济环境,意大利女性工作的念头十分坚定,一方面是因为她们本身愿意,另外一方面是因为她们认为自己的家庭需要多一份收入。

  • 洗车时应该注意什么?(洗车时应该注意什么)

    多数情况下我们可以选择柔水洗车。除此之外,用水枪对车进行冲洗,操作不慎很容易将水冲到发动机舱内,造成电路损伤,是一种十分危险的做法。

  • 怎样用一句话赞美牡丹(赞美牡丹的句子)

    怎样用一句话赞美牡丹?牡丹那丰富的花容,绚丽的色彩,在百花丛中争艳斗丽。牡丹,姿态优美;牡丹,玉笑珠香,冠绝群芳。中国人一向把牡丹看作是富贵吉祥繁荣幸福的象征。牡丹花的颜色也有很多。牡丹花真是数不胜数,它们争奇斗艳,竞相开放。牡丹花在绿叶的拍子下翩翩起舞,如同一位仙女在人们面前展示着自己优美的舞姿,让人们尽情地观赏,尽情地享受。

  • 吃红薯犯4个禁忌会短命(吃红薯的禁忌有哪些)

    吃红薯犯4个禁忌会短命食用凉的红薯易致胃腹不适。红薯在胃中产生酸,所以胃溃疡及胃酸过多的患者不宜食用。烂红薯和发芽的红薯可使人中毒,不可食用。红薯等根茎类蔬菜含有大量淀粉,可以加工成粉条食用,但制作过程中往往会加入明矾。若过多食用会导致铝在体内蓄积,不利健康。红薯含有“气化酶”,一次不要吃得过多,而且和米面搭配着吃,并配以咸菜或喝点菜汤即可避免烧心、吐酸水、肚胀排气等现象。

  • 秋分是什么意思(秋分是什么意思含义)

    平分秋季秋分节气位于秋季的中间位置,是进入秋季的第90天,因此有平分秋季的意思。农历秋分是哪一天2018年秋分是9月23日。而祭月无月则是大煞风景的。其祭祀的场所称为日坛、地坛、月坛、天坛。民间的祭月习俗因地区不同仪式各异。尤其是秋分当天。另外,最好选择生下四五天的鸡蛋,因为此时鸡蛋的蛋黄下沉,鸡蛋重心下降,最有利于“竖蛋”。丰富的胡萝卜素、维生素C有助于增强人体免疫功能,提高人体抗癌作用。

  • 借记卡和储蓄卡哪个好办理(借记卡和储蓄卡的不同)

    借记卡是储蓄卡的一个升级版本,以前的储蓄卡由于受到了技术条件的限制因此不具备结算功能,只能进行单方面的存取,无法进行转账、汇款以及购买理财等。借记卡不能透支,它能够支持转账、存取现金,网上购物,和在一些能够刷卡的地方进行刷卡消费。借记卡的适用范围广,而储蓄卡的适用范围比较窄。

  • 家里四面墙挂画有什么讲究(家里挂画有什么讲究)

    不然,则会影响家里的财运。字画的边框也要大小得当,与房间整体的搭配相得益彰。而在画的内容上,最好与主人的性格相配合,更显主人的文化底蕴和高雅品味。在这样的家庭环境下生活,人的脾气会变得十分暴躁,心绪难以宁静。除此以外,还会让人的精神紧张,导致压力倍增,不利于平时的工作和学习。

  • 夜泊石原神在哪(夜泊石原神在哪里获取)

    原神游戏中,夜泊石的位置在明蕴镇和天衡山处,全体一共有33个夜泊石矿点,夜泊石是一种泛用性极高的装备打造材料,旅行者中后期非常容易出现不够用的情况,玩家可多去明蕴镇和天衡山处找找。同时在玩家也可在璃月处的NPC石头购买获得夜泊石,夜泊石属于两天刷新一次的矿石。

  • 青岛建达集团总经理(广联达总裁袁正刚一行赴青建集团调研交流)

    4月20日下午,广联达总裁袁正刚一行到访青建集团,与国清集团总裁、青建集团股份公司党委书记吴书义,就建筑业数字化转型、深化合作等进行了深入交流。作为数字化使能者,广联达希望与更多的产业链企业深入合作,共同推动建筑行业数字化转型升级。

  • 七夕节最适合送什么礼物给老婆(老婆最想要的礼物是这个)

    -1-中国的情人节到了,今年给老婆送点啥?-3-当然,也有人觉得夫妻之间发红包没有必要。钱都是共有的,发再大的红包,也只不过是从左手交给右手而已。当有一天,左手提东西累了,右手一定会去帮负担。因为左手拍右手,才能鼓出精彩的人生!花钱买了礼物,可能不实用,虽然能够浪漫一时,却可能有伤家庭财政。二是能满足虚荣心。让老婆的小金库更充足点,对她,对这个家,都是好事。你的膝盖会知道,人世间最痛苦的事莫过于此。