O(log n)だった時刻とO(n log n)だった時刻に遭遇しました。これは非常に人気のあるインタビューの質問です。したがって、インタビュアーが盲目的にバイナリ検索の実行時間(コンテキストなし)を尋ねると、あなたは何を言うべきですか?バイナリ検索はO(log n)かO(n log n)ですか?
答えて
O(log n)(平均と最悪の場合)誰かがそれがO(n log n)であると主張したことを聞いたことはありません
アレイのすべての要素に対してバイナリ検索を行う必要があるときは、n * log n回になることがあります。これは、単一のログnバイナリ検索よりも頻繁に行います。 – tnecniv
バイナリ検索はすべての要素を検索するのではなく、HashMapまたはSetにすべてのデータを配置し、コストをO(n)とし、各要素のコストO(1)で検索します。コストはO(n).... –
文脈がないので、おもしろい質問のように聞こえます。インタビュアーがバイナリ検索が良い場合とそうでない場合をカバーしたいと思うように見えます。
バイナリ検索は、要素のリストをソートして単一要素を検索した場合に便利です。そのような場合は、O(logn)
が必要です。
ここで、ソートされた配列がない場合、ソートするコストはO(n logn)
であり、最初のケースを適用できます。そのような場合は、値をセットまたはマップに配置してから検索するとよい(実行時間はO(n)
、挿入の場合はO(1)
となります)。
いずれの場合も、単一の検索に依存します。バイナリ検索は、単一実行(または、n/2
要素、n/4
、またはlogn
要素のように、n
に応じて任意の数の要素を検索するためのものではありません。そのような場合には、より良い方法(セットとマップ)があります。
- 1. log(n!)= O((log(n))^ 2)ですか?
- 2. O(log n)のバイナリ検索ツリー?
- 3. ログ(O(n * log(n)))は何ですか?
- 4. O(1)、O(n log n)、O(log n)の複雑さを持つアルゴリズムの例
- 5. O(n)とO(log(n))の違い - これはより良く、O(log(n))は正確に何ですか?
- 6. O(log n)は常にO(n)よりも速いですか
- 7. 複雑さO(log(n))はO(sqrt(n))と等価ですか?
- 8. 床(√2n)のO(log log n)アルゴリズム?
- 9. O(n^2 * log(n))とO(n^3)どちらが大きいですか?
- 10. ListBox.FindString最悪の場合のランタイムは何ですか? O(n)、O(n log n)、O(1)?
- 11. O(3^log n)をO(n^log 3)として書き直すことはできますか?
- 12. 関数2log(log(n))+ 3nlog(n)+ 5log(n)のbig-oとは何ですか?
- 13. O(n * log n)の仕事をし、O(n^2)の仕事をするコードの複雑さは何ですか?
- 14. O(n log n)時間での線配置の境界ボックス
- 15. f(n)= log(n)^ mはすべての自然数mに対してO(n)
- 16. 時間複雑度がO(sqrt(n)* log(n))のアルゴリズムはありますか?
- 17. O(n)vs O(n^2)
- 18. A(n)= A(n-1)+ n * log(n)?
- 19. AVLツリーが常にO(log(n))検索を保証できる方法
- 20. 2つのループで実行時間O(n^3 log n)で実行
- 21. T(n)= 2T(n/2)+ O(n)からO(nlogn)を得る方法
- 22. O(log(n))の時間間隔でカウントする
- 23. なぜO(n * logn)ではなくTreeSet Iteration O(n)ですか?
- 24. O(n log n)時間内に特別な点kを見つけるアルゴリズム
- 25. Javascript:解決策をO(n log n)に変更してください
- 26. 反復T(n)= T(n - log(n))+ 1
- 27. f(n)= 1000n + 4500lgn + 54n O(n)ですか?
- 28. O(n)
- 29. o(n^2)の代わりにo(log n)またはo(n)の時間複雑度を持つようにこのコードを修正する方法
- 30. 漸近分析では、 - O(f(n)+ g(n))= O(max {f(n)、g(n)})
バイナリ検索で複雑さがO(n log n)の例を挙げることができますか?それを複数回使用することは複雑さには含まれません。場合は、リンクされたリストまたはこれのような何かについては、なぜ誰もリニア検索の代わりにバイナリ検索を使用すると思いますか? – AbcAeffchen