时间复杂度 O(log * n)和 O(loglog n)之间存在混淆,并想知道哪一个更大。
任何帮助?
答案 0 :(得分:3)
O(log* n)
比O(log log n)
更快。
log* n
表示在log*(log n)
到达之前需要做多少次log(log n)
。 1.因此,从log N
到n = 2^512
< log*n
之前剩下的内容将是1 + log*
1
所以这个值的计算是递归的。
对于log log n
{{1}}会给你4个
其中{{1}} = 5.17
答案 1 :(得分:0)
O(log*N) < O(loglogN)
获得足够大的输入。 log * n定义为取数字的对数,直到它达到1. log * n的反函数是2到2的幂的塔,其增加得非常快,因此log * n增长非常慢。例如log*(2^65536) = 5
。在比较中,loglogn
的增长速度比log*n
的增长速度快log(log(2^65536)) = log(65536) = 32
。
Proof:- log*n < loglogn for sufficiently large n
log*n = log*(log(n)) + 1
log*(log(n)) + 1 < log(logn)
Can easily prove that log*(n) + 1 < logn
replacing n by logn
log*(logn) + 1 < log(logn)
log*(n) < log(logn)