簡體   English   中英

二叉樹中的成本搜索操作?

[英]Cost search operation in a Binary tree?

在二叉樹中進行搜索操作需要花費多少? 是O(n)嗎?

        Average     Worst case
Space   O(n)        O(n)
Search  O(log n)    O(n)
Insert  O(log n)    O(n)
Delete  O(log n)    O(n)

是的,它是O(n),因為它是二叉樹而不是二叉搜索樹。

由於無法判斷要在“二叉樹”中分支的方式(左或右),因此在最壞的情況下,我們必須搜索整個樹。

搜索元素的平均大小寫:O(log n)

最壞的情況:O(n)

如果您需要更好的(對數)最壞情況下的運行復雜性,則可以檢查平衡樹(AVL,紅黑)。

是,它將是O(n),因為在該樹中沒有像二進制搜索樹那樣的排序條件,因此您必須遍歷整個樹,就像數組一樣

根據Robert Sedgewick的《算法分析入門》一書,如果此二叉樹是通過大小為N的隨機排列構造的,則平均成功搜索為2H_N − 3 + 2H_N / N = 2ln(N)+ O( 1),搜索失敗的平均值為2H_ {N + 1}-2 = 2ln(N)+ O(1)。

暫無
暫無

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

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