ノードをバイナリツリーに挿入する時間の複雑さは、平衡型と不平衡型の両方のBSTで同じですか?時間複雑度の問題
Q
時間複雑度の問題
-3
A
答えて
0
平衡ツリーの場合、insertはルートからリーフまでのノード数であるO(log(n))を取ります。
ツリーは、それが挿入がノー(N)Oを意味し、
0
をn
ステップの最悪のケースをとることができ、挿入順序は、以下の場合は、時間の複雑さは、異なることができることを意味し、一つの長い鎖であることができ、アンバランスである場合いくつかの特定のパターン。示されているレベルの努力では完全には答えませんが、次の点を考慮してください。
BSTに1000個の要素を最小から最大まで挿入します。最後のものを挿入するときに何回の比較が必要ですか?
0
どうすれば同じことができますか?
同義語です。
ノードを挿入する場合(1)あなたは3つのノード(5-3-2)を横断しますここでは、この
5
/\
3 7
/\ /\
2 4 6 8
のようなBST
たとえば。ここではシナリオがあるかもしれない最悪の場合:-(アンバランスな場合のために今
)
8
/
7
/
...
/
2
あなたは7つのノードを通過する必要が1
挿入します。
これを避けるために、バランスのとれた検索ツリーが導入されました。あなたはBSTの欠点に目を向けることができ、次にAVLツリーまたはRBツリーを調べることができます。あなたはそれがどのように違うかを知るでしょう。
高さの平衡BSTの場合、検索の複雑さはO(logn)
になります。しかし、最悪の場合、不平衡のBSTに対しては、O(n)
がかかるかもしれません。
関連する問題
- 1. プログラムの時間複雑度
- 2. フィボナッチアルゴリズムの時間複雑度
- 3. デデューピングアルゴリズムの時間複雑度
- 4. プログラムの時間複雑度
- 5. クイックセレクト時間の複雑度
- 6. random.sampleの時間複雑度
- 7. 時間複雑度ヒープソートアルゴリズム
- 8. 対数時間複雑度
- 9. BST時間複雑度
- 10. 非ovarlapping問題の再帰的解法の時間複雑度解析
- 11. 以下のコードの時間複雑度
- 12. アルゴリズムのBigO時間の複雑度
- 13. OrientDBでのカウントエッジの時間複雑度
- 14. ヒープのアルゴリズム時間の複雑度
- 15. このダブルループの時間複雑度
- 16. このwhileループの時間複雑度
- 17. コードの最悪の時間複雑度
- 18. JavaのIterator()の時間複雑度
- 19. 次のコードの時間複雑度
- 20. Pythonのサブリストの時間複雑度
- 21. 次の関数の時間複雑度
- 22. Swift Setの時間複雑度.indexOf
- 23. モジュラー算術の時間複雑度
- 24. 時間複雑度3の合計
- 25. Leetcode:bfs/dfsの時間複雑度
- 26. erlang dictの時間複雑度
- 27. Cプログラムの時間複雑度
- 28. LinkedList.subList(int、int)の時間複雑度
- 29. C++ソートベクトルの時間複雑度
- 30. 配列関数の時間複雑度