我在伪代码中有这个简单的循环:
i = 2
while i < n do
i = i * i
如何根据n
确定此算法的Big-O?
在这种情况下,i
会2
,4
,16
,256
,65536
等,每次i
1}}本身是平方的。我不确定如何用表达来形容这一点。
答案 0 :(得分:3)
乍一看,O(log(n))
的时间复杂度为n
while
,2^(2^k)
是静态的。但是,如果仔细检查,你可以找到紧密的约束。要按照k = 0, 1, 2, ...
的步骤执行此操作。例如,对于i
,您可以看到2, 4, 16, 246, ...
是增长O(log(log(n)))
。因此,确切的复杂性为Qout
。