Big O は最悪のシナリオを表します。2 つの異なるコンピューターが操作を実行するのにかかる時間を比較することはできないため、Big O はアルゴリズムが実行する操作の数に適用されます。操作は、メソッドの呼び出しから変数の割り当てまで、何でもかまいません。
コードを調べる
int[] result = new int[2 * list.length];
for (int i = 0; i < list.length; i++) {
result[2 * i] = list[i] / 2 + list[i] % 2;
result[2 * i + 1] = list[i] / 2;
}
return result;
重い負荷がfor
ループしています。時間をループするためlist.length
、このメソッドの大きな O は ですO(list.length)
。ただし、完全を期すために、数えることができる他の操作があります。新しい int 配列を割り当てると、それがカウントされます。配列内のインデックスをresult
として計算すると2 * i
、それもカウントされます。ただし、これらの操作には一定の時間がかかるため、ループにかかる可変時間に飲み込まれてしまいます。
メモを読む必要がありますが、さまざまなレベルの複雑さ、定数、線形、対数などがあることがわかります。