の複雑さf(x) = 5x^2 + 4xlogx + 2
はO(x^2)
O(g(x) + k(x)) = max(O(g(x), k(x))
// and O(X^2) > O(xlogx)
//additionally coeffs are disregarded
O(c*g(x)) = O(g(x))
したがって、合計がある場合は、1日の終わりに最大の複雑さを選択するだけで、nが無限大になると、最大のコンポーネントが最大の計算負荷を与えます。また、何が起こるかを大まかに見積もろうとするので、係数があるかどうかは関係ありません。
他のサンプルについては、以下の理由を参照してください
for (int i = 0; i < block.length; i++)
for (int j = 0; j < block.length; j++)
for (int k = 0; k < 5; k++)
g(); //assume worst case time performance of g() is O(1)
最初にループを合計に変換し、右から左に合計を計算します
Sum (i=0,n)
Sum(j=0, n)
Sum(k=0, k=5)
1
1から5までのO(1)のカウンターはまだO(1)です。係数を無視することを忘れないでください
Sum(k=0, k=5) 1 = O(5k) = O(1)
したがって、O(1)の関数をn回カウントする中間の合計になります。これにより、O(n)の複雑さが得られます。
Sum(j=0, n) 1 = O(n)
最後に、左端の合計に到達し、 nn回カウントすることに注意してください。つまり、またはn+n+n...
に等しいn*n
n^2
Sum (i=0,n) n = O(n^2)
したがって、最終的な答えはO(n ^ 2)です。