Algorithm 最小算法&x2019;s渐近时间复杂度作为n的函数
我们已经知道一些算法的渐近时间复杂度是n的函数,例如 O(对数*n),O(对数n),O(对数n),O(对数n^c),0Algorithm 最小算法&x2019;s渐近时间复杂度作为n的函数,algorithm,big-o,time-complexity,asymptotic-complexity,Algorithm,Big O,Time Complexity,Asymptotic Complexity,我们已经知道一些算法的渐近时间复杂度是n的函数,例如 O(对数*n),O(对数n),O(对数n),O(对数n^c),0
- 更新1:我们寻找n的渐近时间复杂度函数。O(1)是最小的,但它没有n李>
- 更新2:O(1)是我们能达到的最小时间复杂度,但下一个最小的已知函数是什么?就我的研究而言: O(alpha(n)):逆阿克曼:使用不相交集的每次操作的摊销时间 或O(log*n)重对数不交集上Hopcroft和Ullman的求取算法
- 除了琐碎的
O(1)
,答案是:没有
如果某个东西不是O(1)
(也就是说,使用n->infinity
,计算时间变为无穷大),无论你找到n
的边界函数是什么,总有一个更小的:只取边界函数的对数。您可以无限地执行此操作,因此没有最小的非常量边界函数
然而,在实践中,当您到达以下位置时,您可能应该停止担心:)
O(1)
在复杂性方面尽可能低,严格来说,1是一个有效函数,它只是常数李>
编辑:我能想到的一个增长非常缓慢的函数是路径压缩和按秩联合实现的复杂度。无论建议什么,总会有一个“较小的算法”
O(log log log log(n)) < O(log log log(n)) < O(log log (n)) < O(log(n)).
O(log(n))
您可以根据需要放置任意数量的log
。但我不知道是否有现实生活中的例子
所以我的答案是你会越来越接近最小算法的O(1)
这到底意味着什么?O(1)
是可能的最小类别,例如一个确定n
是奇数还是偶数的算法。不能有小于O(1)
的任何东西,因为它包含了对每个输入都不做任何操作的情况。这类似于问“大于1的最小实数是多少”。无法回答,因为两者之间总是有另一个数字。我所知道的实际算法中最小的非O(1)复杂度是,其中摊销时间复杂度是逆阿克曼函数。即使n
在万亿次中,此函数给出的值也小于5。定义“已知函数”。是的,O(1)是我们能得到的最小值,但下一个最小的已知函数n是什么?就我的研究而言,它是O(alpha(n))或O(log*n),但我不确定它是不是correct@super1ha1正如我指出的,没有这样的功能。我能想到的最低值是DSF的重对数,它实际上是线性的