首页 > 其他分享 >上界、下界与确界:Ο/Ω/Θ/ο/ω之间的区别

上界、下界与确界:Ο/Ω/Θ/ο/ω之间的区别

时间:2023-06-27 17:11:58浏览次数:46  
标签:读音 确界 区别 复杂度 下界 表示法 算法

一、概述
Ο,读音: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)。
————————————————
版权声明:本文为CSDN博主「anshuai_aw1」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/anshuai_aw1/article/details/108449000

标签:读音,确界,区别,复杂度,下界,表示法,算法
From: https://www.cnblogs.com/sddai/p/17509388.html

相关文章

  • 机械硬盘和固态硬盘的区别对比,ssd和hdd的区别
    固态硬盘对于很多电脑爱好者朋友都不会陌生,大家都知道固态硬盘在电脑开关机、大型应用载入以及数据传输等方面,相比机械硬盘的速度更快。但是很多朋友对于固态硬盘和机械硬盘的区别并不是特别了解,不少朋友了解的还不够全面,加上一些厂商对SSD的美化宣传,使得一些朋友对于SSD青睐有加,而......
  • make和new的区别(笔记)
    共同点:给变量分配内存不同点:1)作用变量类型不同,new给string,int和数组分配内存,make给切片,map,channel分配内存;2)返回类型不一样,new返回指向变量的指针,make返回变量本身;3)new分配的空间被清零。make分配空间后,会进行初始化;4)字节的面试官还说了另外一个区别,就是分配的位置,在堆......
  • FCFF、FCFE的区别与联系
        为了帮助同学们强化对知识点的理解,我们每周将推出一篇知识点精讲系列的文章,部分的脱离课本,技术保证内容的精细化。公司估值中,标准公式是公司自由现金流量(FCFF)=(1-税率t)×息税前利润(EBIT)+折旧-资本性支出(CAPX)-净营运资金(NWC)的变化,明显少计算了利息*......
  • HTML Over the wire 框架和单页面应用的区别
    HTMLOverthewire方法包括类似于多页面应用程序(MPA)的服务器端渲染(SSR)。然而,在初始请求之后,浏览器仅通过AJAX异步检索HTML片段,因此整个页面不再重新渲染。与单页应用程序(SPA)不同,服务器还处理应用程序的逻辑和状态:[图片]单页面应用(SinglePageApplication,简......
  • MySql InnoDB和Myisam的区别
    MyISAM和InnoDB讲解InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持,而InnoDB提供......
  • PCI与PCIE区别和速度比较
    您是否对PCI和PCIe感到困惑?如果你不知道如何区分它们,你可以阅读这篇文章,从功能、外观、速度和兼容性4个方面解释了它们的区别。什么是PCI和PCIExpress?在计算机中,如果不同的设备想要交换数据,它们必须通过某个通道(即总线)进行交换。总线是用于在计算机的各个功能部件之......
  • git clone和fetch以及pull区别-9
    gitclone和fetch以及pull区别一.gitcloneGitclone适用于已有远程仓库,本机没有相关的本地仓库。使用方法:1.桌面/任意目录,右键单击,点击gitbash。2.输入:gitcloneurl(远程仓库地址)二.gitfetchGitfetch适用于,本机已有相关联的远程仓库。远程仓库中做了修改,本地也做了修改,需要拉......
  • Pytorch | 输入的形状为[seq_len, batch_size, d_model]和 [batch_size, seq_len, d_m
    首先导入依赖的torch包。importtorch我们设:seq_len(序列的最大长度):5batch_size(批量大小):2d_model(每个单词被映射为的向量的维度):10heads(多头注意力机制的头数):5d_k(每个头的特征数):21、输入形状为:[seq_len,batch_size,d_model]input_tensor=torch.randn(5,2,10)inp......
  • CMD与AMD的区别
    个人整理学习! Topic:AMD与CMD的异同? 1、从官方推荐的写法上面得出: CMD-----依赖就近//CMDdefine(function(require,exports,module){vara=require('./a');a.doSomthing();});AMD-----依赖前置 //AMDdefine(['./a','./b'],function(a,b){......
  • C# MemoryCache 和 Memcached的区别
    一、概念1、MemoryCache是C#/.NET应用程序中自带的缓存库。2、Memcached是一个分布式缓存服务器,在不同语言的应用程序中都可以使用。二、异同1、都是用于内存缓存的工具。2、分布式部署支持  MemoryCache对象是在单台服务器上运行的,并且仅限于该服务器的范围内;  M......