Algorithm 找到算法的时间复杂度?
我认为它是log(logn),因为循环重复log(logn)次Algorithm 找到算法的时间复杂度?,algorithm,Algorithm,我认为它是log(logn),因为循环重复log(logn)次 j=1; i=2; (i你是对的,它是O(lg(lg n))其中lg代表以2为底的对数 原因是i的值序列服从规则i=prev(i)*prev(i),对于步骤1、2、3、4,…,结果是2、2^2、2^4、2^8,…。换句话说,i在k迭代之后的值是2^{2^k} 因此,只要2^{2^k}>n或k>lg(lg(n))(只需将lg两次带到不等式的两侧。不等式仍然有效,因为lg是一个递增函数。) j=1; i=2; while (i <
j=1;
i=2;
(i你是对的,它是O(lg(lg n))
其中lg
代表以2为底的对数
原因是i
的值序列服从规则i=prev(i)*prev(i)
,对于步骤1、2、3、4,…,结果是2、2^2、2^4、2^8,…。换句话说,i
在k
迭代之后的值是2^{2^k}
因此,只要2^{2^k}>n
或k>lg(lg(n))
(只需将lg
两次带到不等式的两侧。不等式仍然有效,因为lg
是一个递增函数。)
j=1;
i=2;
while (i <= n) do {
B[j] = A[i];
j = j + 1;
i = i * i;
}