在二叉搜索樹中,大多數操作的平均計算複雜度爲O(NlogN)。以下是來自Algo書中的文本片段:二叉搜索樹分析
內部路徑長度的平均值是D(n)= O(n log n)。因此, 的任何節點的預期深度是O(log n)。例如,隨機生成的500個節點的樹具有預期深度爲9.98的節點。
立即說這個結果意味着所討論的所有操作的平均運行時間,即插入, 在二叉搜索樹上查找min,find max,delete是O(log n),但是這個 並不完全正確。原因在於,由於 刪除,所有二叉搜索樹可能均等於 並不清楚。特別是,上述刪除算法有利於 使得左側子樹比右側更深,因爲我們總是用 替換具有來自右側子樹的節點的刪除節點。這種策略的確切效果仍然不得而知,但它似乎只是一個理論上的新穎性 。已經示出,如果我們交替插入 和缺失O(N 2)(即,n正方形的THETA)倍,則樹 將具有THETA平方根N.
的預期深度的四分之一之後百萬個隨機插入/刪除對,該樹有點右 - 重看起來明顯不平衡(平均深度= 12.51)。
我上面的文字片斷的問題是:
- 什麼是筆者的意思是「因爲缺失的,目前尚不清楚,所有的二叉搜索樹都同樣可能」?
- 作者如何達到500節點樹的預期深度9.98,因爲日誌500不是9.98?
- 在最後一段中,他是如何獲得12.51的平均深度的?
謝謝!
我認爲在以上的大小511深度是9而不是8. – venkysmarty
事實上,它是。修正了,謝謝 –