バイナリヒープの検索に関する競合する情報が見つかりました。それによるとhttps://en.wikipedia.org/wiki/Binary_heap、これはO(n)(編集:実際にはO(ログn))です。これによれば、Search an element in a heapはO(n/2)です。バイナリツリー検索の複雑さ
0
A
答えて
0
ウィキペディアは間違っていました。バイナリヒープは、個々の要素を検索するようには設計されておらず、最小の要素にアクセスできるように最適化されています。これは、例えば、時間内に構築できるようにするものです。Θ(n);彼らが要求する順序は、バイナリ検索ツリーほど厳密ではありません。
誰かがウィキペディアを更新しているようです。いいですね。それを指摘してくれてありがとう!
1つの注記 - 技術的には正しいO(n/2)という用語は、big-O表記法の貧弱な使用とみなされます。 Big-O表記は定数を無視するので、O(n/2)はO(n)と同じです。特定のオペレーション数を数えたい場合は、big-O表記を避け、「正確にn/2の比較が必要です」と言ってください。
関連する問題
- 1. バイナリツリー検索ノードの複雑さを削除
- 2. ほぼ完全なバイナリツリーで要素を検索する複雑さ
- 3. バイナリ検索の時間の複雑さ?
- 4. Luceneの検索の複雑さ
- 5. 複雑さと検索のトライ
- 6. SQL複雑な検索クエリ
- 7. バイナリツリー、バイナリ検索ツリー、バイナリ検索
- 8. Breadth Firstバイナリツリーでの検索
- 9. 不成功のバイナリツリー検索
- 10. 重複する文字列の複雑さを検索する
- 11. 複雑な配列の検索
- 12. 複雑なcodeignitorユーザーの検索クエリ
- 13. PHPの配列複雑な検索
- 14. SugarCRM(SuiteCRM)の複雑なクロスモジュール検索
- 15. 複雑な検索のSQL構文
- 16. Rails 3の複雑な検索画面
- 17. アルファベータ検索時間の複雑度
- 18. バイナリツリーを検索する
- 19. Linq to Entities複雑な動的検索
- 20. 一般ツリーからバイナリツリーへの変換の複雑さ
- 21. nedtrieでの検索操作の複雑さ(ビット単位のトライ)
- 22. 未分類配列のバイナリ検索の時間の複雑さ
- 23. バイナリツリーを作成する時間の複雑さ
- 24. のNeo4j - インデックス付きパラメータによる検索の複雑さ
- 25. 検索/方法の複雑さを計算
- 26. 複数ソートされた配列とその複雑さの検索
- 27. バイナリツリーでの問題の挿入/検索
- 28. バイナリツリー内の要素を検索する
- 29. バイナリツリーのコスト検索操作ですか?
- 30. 複雑なSQLの問題複数の検索で
私は申し訳ありませんが、私はウィキペディアのリンクはそれがO(ログn)だと言いました。 –
真のバイナリヒープは、Wikipediaで*ヒーププロパティ*が記述されているため、O(n/2)になります。* AがBの親ノードである場合、ノードAのキーはノードBのキーに関して同じ順序がヒープ全体に適用されます。*順序は本質的に検索の努力を半分に分割します。しかし、その複雑さはグラフ上で線形であるため、本質的にO(n)に平均化されます。バイナリ検索ツリーは子供を注文し、O(log n)の複雑さを有する真のバイナリ検索を行うことを可能にする。 –
「検索」が特定のデータをヒープで検索することを意味する場合は、「O(n)」にする必要があります。私はwikiページが実際に何を意味するのか分かりません。しかし、通常、ヒープは "検索"操作をサポートしていません - それらはそれを行うように設計されていません。たぶん、誰かがwikiページを修正するか、より明確に述べるべきです。 – WhatsUp