O((n^3)/4)
引数の比率として複雑さを測定することを目的としているため、big-O表記では意味がありません。4で割っても、比率の値は変わりますが、その性質は変わらないため、効果はありません。
これらはすべて同等です。
O(n^3)
O(n^3/4)
O(n^3*1e6)
他の用語は、n
次のような用語が含まれている場合にのみ意味があります。
O(n^3 / log(n))
O(n^3 * 10^n)
アンソニー・カナゴが正しく指摘しているように、それは次のような慣習です。
- 合計の成長率が最も高い項のみを保持します
O(n^2+n) = O(n^2)
。
- 製品の定数を削除します
O(n^2/4) = O(n^2)
。
余談ですが、私はすべての場合にその最初のルールに常に同意するわけではありません。関数の最大成長率を決定するための良いルールですが、入力パラメーターにインテリジェントに制限を設定できるアルゴリズム比較(a)O(n^4+n^3+n^2+n)
のようなものでは、のようなものは単なる。よりも著しく悪いですO(n^4)
。
その場合、入力パラメータに依存する用語を含める必要があります。実際、定数項でさえそこで役立つかもしれません。たとえばO(n+1e100)
、と比較してください。後者は、一定の期間に影響を与えるのに十分な大きさになるO(n^2)
まで、かなり長い間前者を上回ります。n
(a)もちろん、そのような方法で使用すべきではないと言う人もいますが、現実世界では実用主義が独断主義を克服することがよくあります:-)