单选题:时间复杂度分析(单循环log2(n)次)
时间复杂度分析
下面算法的时间复杂度为 ▁▁▁▁▁。
c
int foo(int n)
{
int i, s = 0;
for (i = 1; i <= n; i *= 2)
{
s += i;
}
return s;
}
A.$$O(\sqrt{n})$$
B.$$O(n)$$
C.$$O(2 ^ n)$$
D.$$O(\log_{2}n)$$
答案:D
下面算法的时间复杂度为 ▁▁▁▁▁。
c
int foo(int n)
{
int i, s = 0;
for (i = 1; i <= n; i *= 2)
{
s += i;
}
return s;
}
A.$$O(\sqrt{n})$$
B.$$O(n)$$
C.$$O(2 ^ n)$$
D.$$O(\log_{2}n)$$
答案:D