私はBigO表記について読んでいます。私が持っている本には、 n 2の複雑さがO(n 3)のクラスにある例があります。n 3はnに依存し、「取り除く」ことができるのは単なる定数乗数ではないため、これは私には論理的ではないように思われます。
これら2つが同じ複雑さである理由を説明してください。このフォーラムや他のフォーラムで答えが見つかりません。
Big O は、n の大きな値の上限を決定します。O( n 3 ) は O( n 2 )より大きいので、n 2プログラムは O( n 3 ) のままです。また、O( n 4 )、O(*n 5 )、...、O( n infinity ) です。
ただし、その逆は当てはまりません。n^3 プログラムは O( n 2 ) ではありません。むしろ、Omega が下限 (少なくともどれだけの作業をしなければならないか) を決定するため、 Omega( n 2 ) になります。
Big O は、この上限が「タイト」であることについては何も言っておらず、実際の複雑さよりも高くする必要があるだけです。したがって、n*n の複雑さのプログラムは O( n 3 ) によって制限されますが、これは厳密な制限ではありません。O( n 2 ) はより厳密で、より有益です。