当前位置: 首页 > 面试题库 >

空算法的时间复杂度是否为O(0)?

顾俊茂
2023-03-14
问题内容

因此,给出以下html" target="_blank">程序:

该程序的时间复杂度是否为O(0)?换句话说,是0 O(0)吗?

我以为在一个单独的问题中回答这个问题将使这个问题更加清晰。

编辑:这里有很多好的答案!我们都同意0是O(1)。问题是,0 O(0)也是吗?


问题答案:

从维基百科:

用大O表示法描述功能通常仅提供功能增长率的上限。

根据此描述,由于空算法需要执行0次,因此其上限性能为O(0)。这意味着它也是O(1),碰巧是一个较大的上限。

编辑

更正式地来自CLR(1ed,第26页):

对于给定的函数 gn ),我们将 Ogn ))表示为函数集

øÑ ))= { ˚FÑ ):存在正的常数 ÇÑ 0,使得0≤F(N)≤ CGÑ
)的所有 ñÑ 0 }

因此,无论输入如何,在0时间内执行的空算法的渐近时间性能都是 O (0)的成员。

编辑2

我们都同意0是O(1)。问题是,0 O(0)也是吗?

根据定义,我同意。

此外,我认为这个问题的意义比许多答案表明的要重要得多。就其本身而言,空算法可能毫无意义。但是,无论何时指定非平凡算法,都可以将空算法视为位于指定算法的连续步骤之间以及算法步骤之前和之后。很高兴知道“虚无”不会影响算法的渐近时间性能。

编辑3

亚当·克鲁姆提出以下主张:

对于任何函数 fx ), fx )都在O( fx ))中。

证明:让 小号 是的一个子集 - [RŤ 是的一个子集 - [R (非负实数),并让 ˚FX ):

小号 - > ŤÇ ≥1。然后0≤ ˚FX )≤ ˚FX ),其通向0≤ ˚FX )≤
CFX )对于所有X∈
小号* 。因此 fx )∈O( fx ))。

具体地,如果 fx )= 0,则 fx )∈O(0)。



 类似资料:
  • 算法的时间与空间复杂度 看到群里们小伙伴在讨论算法复杂度问题,之前在极客时间看了王争的《数据结构与算法之美》,看的我也晕呼呼的,跟上学时在学校老师的讲的有点不一样了,网上搜了下各种各样的,结合参考作一篇简单易懂的总结。 什么是算法 算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。 如何评价一个算法的好坏 一般我们会从以下维度来评估算法的优劣 正确性

  • 查找p的伪码算法为: 假设我有一个int值的数组H[1到m],其中“p”是峰值元素,如果: 基本上,如果H【p】大于或等于其相邻元素,则H【p】为峰值。 假设数组H在开始和结束时都大于1个元素,数组为H[0到m 1],其中H[0]=H[m 1]=无穷大。因此,H[0]和H[m 1]是哨兵。然后是元素p,其中1≤ p≤ n、 是一个峰值,如果H【p-1】≤ H【p】≥ H【p 1】。 我认为渐近时间

  • 本文向大家介绍k-means算法的时间空间复杂度?相关面试题,主要包含被问及k-means算法的时间空间复杂度?时的应答技巧和注意事项,需要的朋友参考一下 时间复杂度为O(tmnK) t表示迭代次数,m表示数据个数,表示数据特征维度,K表示类簇数 空间复杂度为O((m+K)*n) m表示数据个数,K表示类簇个数,n表示维度,理解就是需要存储数据点和类中心点

  • 问题内容: 这是第 5章破解编码面试中的问题9.4 问题: 编写一种方法以返回集合的所有子集。 这是我用Java编写的解决方案(经过测试,它可以正常工作!!!) 我看了这个问题的解决方案,作者说该算法的解决方案以 _O(2 n)_时间复杂度和 _O(2 n)_空间复杂度运行。我同意她的观点,该算法运行时间为 _O(2 n),_因为要解决此问题,您必须考虑以下事实:对于任何元素,您都有两种可能性,它

  • 给定一个整数数组arr,计算元素x,使得x 1也在arr中。如果arr中有重复项,请分别计数。 示例1:输入:arr=[1,2,3]输出:2说明:1和2被计数,因为2和3在arr中。 示例2:输入:arr=[1,1,2]输出:2解释:1计数两次,原因2在arr中。 示例3:输入:arr=[1,1,3,3,5,5,7,7]输出:0说明:没有计算数字,因为arr中没有2、4、6或8。 示例4:输入:a

  • 主要内容:时间复杂度,空间复杂度《 算法是什么》一节提到,解决一个问题的算法可能有多种,这种情况下,我们就必须对这些算法进行取舍,从中挑选出一个“最好”的。 算法本身是不分“好坏”的,所谓“最好”的算法,指的是最适合当前场景的算法。挑选算法时,主要考虑以下两方面因素: 执行效率:根据算法所编写的程序,执行时间越短,执行效率就越高; 占用的内存空间:不同算法编写出的程序,运行时占用的内存空间也不相同。如果实际场景中仅能使用少量的内

  • 做O(h)算法的时间复杂度是多少?当h是节点的高度,以BST n倍为单位(树中的元素数),我相信是O(n),而不是O(n*h),但我不知道如何证明它。 在O(h)中工作的特定算法是在BST中查找元素的顺序前体。