最初に空のBSTで始まり、 'n'個のランダムな挿入を行うためのアルゴを提示します。挿入する値を取得するために一様乱数ジェネレータを使用します。結果のBSTの高さを測定し、 log2n.n = 100,500,1000,2000,3000 ....、10000に対してこれを行います.nの関数としてheight/log2nを入力します。比率はほぼ一定(約2)でなければなりません。これがそうであることを確認してください。
私の理解:
は今、我々はすべてのBSTの高さが「n」はlog2nあるtree.Ifの要素数は、それが左/右斜めに傾いた木です、そして高さが同じであることを知っています〜 'n'。したがって、ここで高さを測定すると、挿入のために想定する高さはランダムです。つまり、比率は常に2周ぐらいになります。
私はこれに対して私の頭を叩いています。バイナリ検索ツリー
-2
A
答えて
1
左斜め/右斜め木の場合、高さは「n」に等しくなります。私たちはここに高さを測定あれば、どのような高さ我々は、挿入のために想定する必要があり、そのようなバイナリツリーの高さは
n
ある
ランダムです。ここでは何もする必要はありません。また、完全にバランスBSTの高さは、ログ(n)は(いない一般的には)あなたの質問に来
ですが、私はあなたがランダムにバイナリツリーを構築の高さを見つけるために求めていると仮定します。その場合、特定のバイナリツリーの高さを計算する必要はありません。
スキューされた木の高さがn
であっても、均一なランダム分布で生成されている可能性は非常に低いです。したがって、ランダムなBSTの高さを計算すると、O(log n
)になります。正確な計算のために
関連する問題
- 1. バイナリ検索ツリー
- 2. バイナリ検索ツリー
- 3. バイナリ検索ツリー
- 4. バイナリツリー、バイナリ検索ツリー、バイナリ検索
- 5. deleteバイナリ検索ツリー
- 6. バイナリ検索ツリー?アルゴリズム
- 7. バイナリ検索ツリー式
- 8. Cバイナリ検索ツリー
- 9. バイナリ検索ツリーC++
- 10. バイナリ検索ツリー - ポストオーダーロジック
- 11. バイナリ検索ツリーの検索操作
- 12. バイナリ検索ツリーのセグメンテーションフォールト
- 13. バイナリ検索ツリーtoString Java
- 14. バイナリ検索ツリーの再帰
- 15. バイナリ検索ツリーの質問
- 16. C.のバイナリ検索ツリー
- 17. バイナリ検索ツリーのリスト
- 18. 作成バイナリ検索ツリー
- 19. バイナリ検索ツリーのトラバーサル
- 20. バイナリ検索ツリーinorderイテレータC++
- 21. バイナリ検索ツリーの高さ
- 22. Cのバイナリ検索ツリー、セグメンテーションフォールトエラー
- 23. Cセグメンテーションフォールトのバイナリ検索ツリー
- 24. バイナリ検索ツリー解析
- 25. バイナリ検索ツリー削除(C++)
- 26. バイナリ検索ツリーの汎用
- 27. バイナリ検索ツリーのデストラクタ
- 28. バイナリ検索ツリーのトラバーサル
- 29. 「連続」バイナリ検索ツリー
- 30. バイナリ検索ツリーのJavascriptサイズ
[THIS](https://www.sitepoint.com/hierarchical-data-database-2/)のお手伝いをします –