Algorithm 找到算法的时间复杂度?

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 <

我认为它是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 <= n) do {
    B[j] = A[i];
    j = j + 1;
    i = i * i;
}