首页 > 试题广场 >

下面代码的时间复杂度是() int i, j, k = 0;

[单选题]
下面代码的时间复杂度是()
int i, j, k = 0;
for (i = n / 2; i <= n; i++) {
    for (j = 2; j <= n; j += j) {
        k = k + n / 2;
    }
}

  • O(n)
  • O(n * log(n))
  • O(n^2)
  • O(n^2 * log(n))
for(i = n / 2; i <= n; i++) --------从n/2开始到n,i++,时间复杂度n

for (j = 2; j <= n; j += j)---------从2开始,j+=j,所以(2;2+4;2+4+8;)倍增,时间复杂度log(n)

循环嵌套:
O(n * log(n))

发表于 2020-02-20 15:32:17 回复(0)