时间复杂度是多少

时间:2020-12-21 11:43:37

标签: algorithm big-o

以下代码的时间复杂度是多少? 我计算它像 n²log(n)

int x = 0;
for (int i = 0; i < N; i++)
  for (int j = 0; j < N/2; j++)
     for (int k = 1; k < N;)
     {
       x++;
       k *= 2;
     }
return x;

1 个答案:

答案 0 :(得分:0)

你说得对!

第一次循环执行的次数 = N

second 循环执行的次数 = N/2

第三 循环执行的次数 = log2(N)

因此,时间复杂度 = O(N * (N/2) * log2(N)) = O((N^2)/2 * log2(N)).

在忽略 N 的最高次幂的常数后,时间复杂度 = O((N^2) * log2(N)).