異なる複雑さで同じ結果を計算する2つのalgorthimがある場合、O(log n)は常により速くなりますか?もしそうなら、説明してください。これは割り当ての問題ではありません。O(log n)は常にO(n)よりも速いですか
10
A
答えて
23
いいえ1つのアルゴリズムがN/100
で実行され、もう1つのアルゴリズムが(log N)*100
で実行される場合、2番目のアルゴリズムは入力サイズが小さいほど遅くなります。漸近的複雑さは、入力サイズが無限になるまでの実行時間の振る舞いに関するものです。
12
いいえ、必ずしも高速であるとは限りません。しかし、問題のサイズが大きくなるにつれて、の最終的には、O(log n)アルゴリズムがO(n)より速い点に常に到達します。
通常、O(log n)アルゴリズムがO(n)アルゴリズムを追い越すポイントは、非常に迅速になります。 O(n)とO(n^2)の間に大きな違いがあるように、O(log n)とO(n)の間には大きな違いがあります。
あなたはジョン・ベントレーによってプログラミング真珠を読む機会を持っている場合は、そこに素晴らしい章彼はに可能なすべてをやって、O(n)のOに対するアルゴリズム(N^2)1ピットがありますO(n^2)に利点を与える。 (彼は、Alpha上でC言語でO(n^2)アルゴリズムをコーディングし、古いZ80などでは約1MHzでBASICを解釈するO(n)アルゴリズムをコーディングしています)アルゴリズムはO(n^2)を追い越します。
場合によっては、非常に複雑なアルゴリズムがありますが、複雑なアルゴリズムは、単純なものよりわずかに優れています。そのような場合、盲目的にアルゴリズムを選択しないでください。大規模な問題で高速に処理されることがあります。
関連する問題
- 1. O(n)とO(log(n))の違い - これはより良く、O(log(n))は正確に何ですか?
- 2. O(1)、O(n log n)、O(log n)の複雑さを持つアルゴリズムの例
- 3. ListBox.FindString最悪の場合のランタイムは何ですか? O(n)、O(n log n)、O(1)?
- 4. 床(√2n)のO(log log n)アルゴリズム?
- 5. O(n)vs O(n^2)
- 6. O(3^log n)をO(n^log 3)として書き直すことはできますか?
- 7. なぜO(n * logn)ではなくTreeSet Iteration O(n)ですか?
- 8. f(n)= log(n)^ mはすべての自然数mに対してO(n)
- 9. T(n)= 2T(n/2)+ O(n)からO(nlogn)を得る方法
- 10. 漸近分析では、 - O(f(n)+ g(n))= O(max {f(n)、g(n)})
- 11. 時間Oの複雑さ(n(nはをログ)ログ)+ nはO(L)
- 12. 2つのループで実行時間O(n^3 log n)で実行
- 13. 防止O(N)クエリ
- 14. O(n log n)時間内に特別な点kを見つけるアルゴリズム
- 15. C++ステートメントのBig-O 'delete [] Q;' O(1)またはO(n)?
- 16. 可能な説明(N!)= O(NLG(N))
- 17. Javaコレクション:TreeMap.size()およびTreeSet.size():O(1)またはO(n)?
- 18. O(log n)よりも10倍のパワーを得ることができますか?
- 19. O(fib n)複雑アルゴリズム?
- 20. Big Oの例2^n
- 21. 成長率log(log * n)とlog *(log n)のどちらが速いのですか?
- 22. 実際には、リンクリスト追加O(N)またはO(1)ですか?
- 23. ランタイムをO(n)に減らす
- 24. ここで、O(n個の* m)よりも良好にレーベンシュタインアルゴリズムのdamerauバージョンを
- 25. O(2^n)より良いハノイ解の塔?
- 26. 番号kより小さいフィボナッチ数の数。 Sub O(n)
- 27. 合計アルゴリズム:O(n^2)平均で
- 28. O(N)未満のN擬似乱数を生成する
- 29. C#逆シリアル化のO(n * n)の動作?
- 30. O(n^3)未満の最大フローアルゴリズム
十分な大きさ* n *の方が常に高速です。 – Phonon