循环的复杂性

时间:2014-06-01 18:03:58

标签: for-loop complexity-theory

我想知道该代码复杂性的解决方案是否正确:

for (j = 2^N; j>1; j = j/2) {
              h = h * 2;
          for (i =1; i < j; i = i*2)
             for (k=2; k<log N; k++)
                cont ++;
}

据我所知,最后一个周期有复杂性log n

第一个周期具有复杂性n

第二个周期具有复杂性log n

因此总复杂度为n log n

最好的问候

1 个答案:

答案 0 :(得分:0)

这里有三个循环:

  1. 首先是N的线性(2 ^ N中的对数)
  2. 其次是N的线性(2 ^ N中的对数)
  3. 第三是N
  4. 中的对数

    所以整个代码看起来像O(N^2 log N)