【问题标题】:What is the algorithm Who have the worst complexity O(2^2^n)? [closed]什么算法谁的复杂度最差 O(2^2^n)? [关闭]
【发布时间】:2019-10-25 06:02:18
【问题描述】:

它们有许多复杂性类型,例如 O(1) ... 但最糟糕的复杂度是 O(2^2^n) 有没有这种复杂度 O(2^2^n) 的算法? 是谁?

【问题讨论】:

  • 为什么你认为最糟糕的复杂度是 O(2^2^n)?
  • O(A(27, n)) 稍微差一点,其中 A 是阿克曼函数。
  • 是否存在复杂性的上限……?因此,会不会有绝对最差……?

标签: algorithm time-complexity complexity-theory


【解决方案1】:

复杂度为O(2^(2^n)) 的算法是:从0 计数到2^(2^n)-1,使用2^n 位。

O(2^n) 用于初始化,每次增量摊销O(1)

如果你想输出所有这些数字,这将需要O(2^(2^n).2^n) 操作,从技术上讲,它高于O(2^(2^n))。您可以通过仅输出第一个 2^(2^n-1) 数字来修复。

【讨论】:

    【解决方案2】:

    没有“最差”的复杂度 - 例如,如果您认为某个函数 F(n) 代表最大的复杂度,请将其平方或取 G(n) = 2^F(n) 等等。

    关于O(2^2^n) 算法的示例 - 有2^n n 位整数。并且有2^2^n 这样的整数集合 - 如果某个算法应该检查所有可能的集合(如果检查每个集合的时间是恒定的,如 Yves Daoust 所指出的)以检索结果,那么您会提到复杂性。

    【讨论】:

    • 只有在检查集合的时间不变的情况下,您的最后一句话才成立。
    猜你喜欢
    • 1970-01-01
    • 2018-11-26
    • 2019-12-13
    • 2023-03-16
    • 2017-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多