簡體   English   中英

平衡二叉樹與平衡二叉樹

[英]Balanced Binary Tree Vs Balanced Binary Search Tree

對於這些操作中的每一個,平衡的二叉樹是否比平衡的二叉樹更快地完成任務?

  1. 在樹中找到最小的項目。

我認為平衡的BST比平衡的二叉樹要快得多,因為您可以一直向左移動並找到最小的項目。 我認為應該是O(log n)。

  1. 創建樹中小於某個值v的所有元素的列表。

對於2,有人可以向我解釋一下哪一個會有更快的時間嗎?

您還必須考慮時間復雜度性能的最佳,平均和最壞情況,並牢記n的值表示:


1.平衡式二叉搜索樹表示

           25             // Level 1
        20    36          // Level 2
      10 22  30 40        // Level 3
  .. .. .. .. .. .. .. 
.. .. .. .. .. .. .. ..   // Level n

2.二進制搜索樹表示

           10           // Level 1
          9  11         // Level 2
         7 . . 20       // Level 3
        8 . . . 15 24   
       6 . . . . . . .  // Level n

在樹中找到最小的項目。

這是搜索操作。

1)即使在最壞的情況下,此處的時間復雜度也為O(log n) ,因為樹是平衡的。 最小值是10。

2)在最壞的情況下,這里的時間復雜度是O(n) 最小值為6。您可以從表示形式中看出,根的左樹(分支)的行為類似於鏈表。 這是因為樹不平衡。 [ 1 ]

創建樹中小於某個值v的所有元素的列表。

這將是一個插入操作。

1)這將是O(log n) ,因為遍歷樹時它是平衡的,所以您不會得到2)的情況。

2)這將是O(n) ,因為在最壞的情況下,您的插入類似於鏈接列表的插入。

結論:平衡二叉搜索樹在所有搜索,插入和刪除節點的情況下保證O(log n) ,而典型的BST則不能。


引文

最佳,最差和平均情況[1]

創建樹中小於某個值v的所有元素的列表。

好吧,在Big O表示法中, balanced binary search treebalanced binary tree都將執行相同的操作,並且時間為O(N) ,這是線性時間復雜度。

對於Balanced Binary Search tree ,我們將進行有序遍歷,並繼續將所有鍵添加到列表中,直到遇到帶有鍵v的節點( BST有序遍歷會導致鍵的升序)。 現在,當vBST存在的最大密鑰時,會發生最壞的情況,因此,時間復雜度為O(N)

對於balanced binary tree ,它與遍歷整個樹並將所有小於v的鍵添加到列表中一樣好。 因此,這里的時間復雜度也是O(N)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM