私は最近構造クラスのデータに対して2つのテストを終了しましたが、O(n)vs O(n^2)間違って2回。私は問題を理解するのに役立つかどうか疑問に思っていた。問題は次のとおりです。O(n)vs O(n^2)
アルゴリズムAに実行時O(n^2)があり、アルゴリズムBに実行時O(n)があるとします。 n = 17のとき、これらの2つのアルゴリズムのランタイムについては何が言えますか?
A)私たちは、ときに、特定のランタイムについては何も言うことができないのn = 17
b)のアルゴリズムAがC
アルゴリズムBよりもはるかに高速に実行されます)アルゴリズムAは、アルゴリズムB よりもはるかに遅いが実行されます
どちらのテストでも、私はhttps://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functionsに基づいてCに答えました。私はBが提供されたリンクに基づいて意味がないことを知っていた。今、私はそのA.を考え始めています。なぜなら、nは小さいからです。それが事実なら、私は、nが十分に大きくてCが真であるときはいつ疑問に思うのですか?
答えは(a)です。ある時点で、アルゴリズムBはアルゴリズムAより速くなりますが、その交点がどこであるかを正確に言うことは不可能です。それは 'n = 10 'にある可能性があります。それは 'n = 10000 'である可能性があります。 'n = 100000000000000000000000000000000000000000000000000000'(またはそれ以上)になる可能性があります。 – Cornstalks