いくつかのアルゴリズムで問題を解決した後、時間の複雑さを改善しようとするまで、つまり、あなたの現在の時間の複雑さが可能な限り最高であり、漸近的な時間の複雑さにはそれ以上の改善はないと知っていますか? インタビュアーが最適化できないアルゴリズムをさらに最適化するように求めている場合は、インタビューの際にクリアしたいと思っていました。私が開発したアルゴリズムがすでに最高のものであり、 "最適化を行うことができますか?アルゴリズムの最適な時間複雑度を見つけるにはどうすればよいですか?
0
A
答えて
2
アルゴリズムの時間複雑度の下限を証明する方法を尋ねています。指数関数的な数を生成しようとしているときや指数関数的な時間よりもうまくいっていない場合や、ソートされていないリストで最大の数を見つけなければならない場合は、その数は最良の時間範囲が線形であるようにします。しかし、これは非常に難しい場合もあります。コンピュータサイエンスにおける最も重要なオープンな問題の1つは、誰かがNP完全な問題のいずれかの下限を証明できれば解決できるP = NPの推測です。このアプローチには膨大な時間と労力がかかりましたが、大きな成果は出ていません。さらに、可能な限り低いbig-Oは、必ずしもより良い定数を持つより高速のアルゴリズムがないことを意味するわけではありません。
実際には、一定の要因が問題になるため、実装で一定の要因を改善できるかどうかを尋ねることがあります。また、インタビュー中に物事を証明しようとすると、最高のヒットまたはミスです。アルゴリズムをさらに最適化するように求められた場合は、通常、問題を迅速に解決する方法があり、インタビュアーは通常、質問をして、そのような解決策に向けてあなたを促すヒントを与えるためです。
特定の証明手法に関して、比較ソートにバインドされたnlog(n)の証明は、見るべき面白いものです。証明の本質的な考え方は、n!リストの可能な順列と最悪の場合、各比較はそれらの半分しか除去できない。スターリングの近似によって、これはnlog(n)の境界に変わります。それは言われている、これはここで直接議論するには広すぎる複雑なトピックです。
関連する問題
- 1. このアルゴリズムの時間複雑度(Big-O)を測定するにはどうすればよいですか?
- 2. 次のコードの時間の複雑さを見つけるにはどうすればよいですか?
- 3. どのようにアルゴリズムの時間の複雑さを見つけるのですか?
- 4. 再帰アルゴリズムの空間複雑性を見つける一般的な方法は何ですか?時間の複雑さを見つけるために
- 5. バイキュービック補間アルゴリズムの実行時間を最適にするにはどうすればよいですか?
- 6. 再帰アルゴリズムの時間複雑さと空間の複雑さはどのようなものですか?オペレーター?
- 7. アルゴリズムのBigO時間の複雑度
- 8. ヒープのアルゴリズム時間の複雑度
- 9. 遺伝的アルゴリズムの時間複雑度
- 10. 分割アルゴリズム - 時間の複雑度
- 11. このアルゴリズム(コード)の時間複雑度はどのくらいですか?
- 12. アルゴリズム全体の時間複雑度はどのくらいですか?
- 13. 以下の関数の時間複雑度を計算するにはどうすればよいですか?
- 14. どこでJavaメソッドの時間複雑さを見つけるのですか?
- 15. 最大独立独立集合アルゴリズムの時間複雑度
- 16. "="はアルゴリズムの時間複雑度を表すのに "∈"ではなく、なぜ使用されるのですか?
- 17. どのようにこのプログラムの時間の複雑さを見つけるのですか?
- 18. 上記のコードの時間複雑さをどのように見つけることができますか
- 19. アルゴリズムの時間複雑
- 20. このアルゴリズムの時間複雑度はどのくらいですか?それは少しトリッキーである
- 21. 次のコードの時間複雑度はどのようにO(n)ですか?
- 22. この再帰アルゴリズムの時間複雑度はどのようにしてわかりますか?
- 23. 再帰アルゴリズムの時間複雑度を証明する
- 24. クイックユニオンの時間複雑度はどのくらいですか?
- 25. 配列の時間の複雑さから最大のJavaを見つける
- 26. なぜそれは、対数の底はアルゴリズムの時間複雑さを見つけるのに常に2と見なされますか?
- 27. コードの最悪の時間複雑度
- 28. 時間の複雑さによるコードの最適化
- 29. Pythonで幾分複雑なバイナリアルゴリズムを最適化するにはどうすればいいですか?
- 30. Googleマップの2つのポイント間の最適なルートを見つけて、それをハイライト表示するにはどうすればよいですか?
すべてのタイプのアルゴリズムに対応する単一ステップバイステッププルーフは存在しません。 – Keiwan
あなたはこれを読むことができます:http://cstheory.stackexchange.com/questions/1284/problems-that-can-be-used-to-show-polynomial-time-hardness-results – Keiwan
O(n^2)を証明するために問題を3sumに減らす。興味深いことに、2014年には、3sumのさらに複雑なアルゴリズムが見つかりました! https://en.wikipedia.org/wiki/3SUM –