私はアルゴリズムを学んでいて、トップコーダーでこの記事に出くわしました。
これは記事の例です
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)のようです。私が見落としていることを説明してください。私はアルゴリズムを始めているだけです。