2次迭代的幂运行时间
Runtime of power of 2 iteration
例如:
for (int i = 2; i <=n; i = pow(i,2)) // O(1) time here)
log(log(n)) 从 2 4 16 256 ... 2^(2^n) 是否正确?
是的,这个循环的时间复杂度是O(log(log(n)))。
动机:
i
增长为 ((2^2)^2)^...^2 = 2(2 * 2 * ... * 2) = 22^(k-1) 其中 k 是迭代次数。因此我们必须解决:
n = 22^(k-1)
log2(n) = 2(k-1)
log2(log2(n)) = k-1
k = log2(log2(n)) + 1 = O(log(log( n)).▢
例如:
for (int i = 2; i <=n; i = pow(i,2)) // O(1) time here)
log(log(n)) 从 2 4 16 256 ... 2^(2^n) 是否正确?
是的,这个循环的时间复杂度是O(log(log(n)))。
动机:
i
增长为 ((2^2)^2)^...^2 = 2(2 * 2 * ... * 2) = 22^(k-1) 其中 k 是迭代次数。因此我们必须解决:
n = 22^(k-1)
log2(n) = 2(k-1)
log2(log2(n)) = k-1
k = log2(log2(n)) + 1 = O(log(log( n)).▢