【问题标题】:Determining O-runtime of simple loop确定简单循环的 O-runtime
【发布时间】:2018-01-16 21:46:27
【问题描述】:

我在伪代码中有这个简单的循环:

i = 2

while i < n do
    i = i * i

对于n,我将如何确定该算法的 Big-O?

在这种情况下,i 将变为:241625665536 等,每次 i 本身都是平方的。我不知道如何想出一个表达来描述这一点。

【问题讨论】:

    标签: algorithm runtime time-complexity big-o asymptotic-complexity


    【解决方案1】:

    乍一看,时间复杂度是O(log(n)),因为nwhile 的条件下是静态的。但是,如果仔细检查,您会发现紧密的界限。按照2^(2^k) 的步骤执行此操作。例如对于k = 0, 1, 2, ...,您可以看到i 是增长2, 4, 16, 246, ...。因此,确切的复杂度是O(log(log(n)))

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 2021-08-13
      • 1970-01-01
      • 2017-05-16
      • 2015-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-08
      相关资源
      最近更新 更多