Algorithm 最小算法&x2019;s渐近时间复杂度作为n的函数

Algorithm 最小算法&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

我们已经知道一些算法的渐近时间复杂度是n的函数,例如

O(对数*n),O(对数n),O(对数n),O(对数n^c),0 我可以知道作为n函数的最小的算法的渐近时间复杂度是多少吗

  • 更新1:我们寻找n的渐近时间复杂度函数。O(1)是最小的,但它没有n
  • 更新2:O(1)是我们能达到的最小时间复杂度,但下一个最小的已知函数是什么?就我的研究而言:

    O(alpha(n)):逆阿克曼:使用不相交集的每次操作的摊销时间

    或O(log*n)重对数不交集上Hopcroft和Ullman的求取算法


    • 除了琐碎的
      O(1)
      ,答案是:没有

      如果某个东西不是
      O(1)
      (也就是说,使用
      n->infinity
      ,计算时间变为无穷大),无论你找到
      n
      的边界函数是什么,总有一个更小的:只取边界函数的对数。您可以无限地执行此操作,因此没有最小的非常量边界函数

      然而,在实践中,当您到达以下位置时,您可能应该停止担心:)

    • 给定算法的复杂性不必通过已知函数来表示。还要注意,big oh不是给定算法的复杂度。这是复杂性的上限
    • 您可以构造任意缓慢增长的函数,例如,任意k的n1/k
    • 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的重对数,它实际上是线性的