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