アルゴリズムの複雑さを再確認して、次の例を見ていました。
int x = 0;
for ( int j = 1; j <= n; j++ )
for ( int k = 1; k < 3*j; k++ )
x = x + j;
このループが最終的に O(n^2) になることはわかっています。私は、内側のループが 3*n 回 ( 3(1+2+...n) ) 実行され、外側のループが n 回実行されると信じています。したがって、O(3n*n) = O(3n^2) = O(n^2) です。
ただし、私が見ているソースは、内部ループの実行を次のように拡張します3(1+2+3+...+n) = 3n^2/2 + 3n/2
。誰でも3n^2/2 + 3n/2
実行時間を説明できますか?