无法理解算法的复杂性

时间:2013-01-27 20:18:45

标签: algorithm complexity-theory

我正在学习算法,并在顶级编码器中偶然发现了这篇文章。

这是article

的示例
int result=0;                           //  1
for (int i=0; i<N; i++)                 //  2
  for (int j=i; j<N; j++) {             //  3
    for (int k=0; k<M; k++) {           //  4
      int x=0;                          //  5
      while (x<N) { result++; x+=3; }   //  6
    }                                   //  7
    for (int k=0; k<2*M; k++)           //  8
      if (k%7 == 4) result++;           //  9
  }                                     // 10

第6行中while循环的时间复杂度显然为O(N) - 执行时间不超过N / 3 + 1次。

我在这里感到困惑,因为作者说时间复杂度是O(N)。对我来说似乎是O(N ^ 4)。请解释一下,我在俯瞰什么。我只是在开始算法。

1 个答案:

答案 0 :(得分:1)

第6行的周期的复杂性是O(N)。