私はアルゴリズム分析ドメインの新人です。スタック オーバーフローの質問 " "Big O" 表記の平易な英語の説明は何ですか?を読みましたが、O(2n^2)
とO(100 n^2)
は と同じO(n^2)
です。n = 4 とすると、操作の数は次のようになるため、これはわかりません。
O(2 n^2)
= 32 操作O(100 n^2)
= 1600 操作O(n^2)
= 16 操作
これらの異なる操作数を同じものとして扱うことになっている理由を説明できる人はいますか?
私はアルゴリズム分析ドメインの新人です。スタック オーバーフローの質問 " "Big O" 表記の平易な英語の説明は何ですか?を読みましたが、O(2n^2)
とO(100 n^2)
は と同じO(n^2)
です。n = 4 とすると、操作の数は次のようになるため、これはわかりません。
O(2 n^2)
= 32 操作O(100 n^2)
= 1600 操作O(n^2)
= 16 操作これらの異なる操作数を同じものとして扱うことになっている理由を説明できる人はいますか?
O(f(n))
というのは、前述の関数が一定の時間によって制限されていることを意味しf(n)
ます。g
が の倍数で境界付けられている場合、 の倍数で100 f(n)
も境界付けられていf(n)
ます。具体的には、O(2 n^2)
に対して 16 を超えないことを意味するのではなく、 に関係なく、固定されn = 4
た に対して16 を超えない ことを意味します。n
C * 2n^2
C
n
これは分類であるため、アルゴリズムをいくつかの複雑さのクラスに配置します。クラスは、O(1)、O(n)、O(n log n)、O(n ^ 2)、O(n ^ 3)、O(n ^ n) などです。定義により、2 つのアルゴリズムがn が無限大になるとき、差が一定の係数である場合は、同じ複雑さのクラスです (big-oh 表記は、n の値が大きい場合のアルゴリズムの複雑さを比較するためのものです)。