[英]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.