[英]what would be the run time of this function using master's theorem
IN-TREE(p, k)
if p == NIL
return FALSE
else if p.key == KEY
return TRUE
else
return IN-TREE(p.left, k) or IN-TREE(p.right, k)
p 指向完全鏈接二叉樹中的一個節點,並且每個節點 p 都有一個名為 p.key 的鍵,一個指向其左子樹 p.left 的指針,以及一個指向其右子樹 p.right 的指針。 一個空的子樹寫成 NIL。
使用大師定理,這個 function 的運行時間是多少?
很明顯,在最壞的情況下,您將查看樹中的所有節點以將節點的鍵與 KEY 匹配。
因此,此解決方案的時間復雜度為 O(n),其中 n 是樹中的節點數。
一棵深度為d
的完整樹有2^d-1
個節點。 所以在最壞的情況下(找不到密鑰時),
T(d) = C + T(d-1) + T(d-1).
如果我們根據節點數重寫,
T(N) = C + 2 T((N-1)/2).
由於獨立項是常數,解在 N 中是線性的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.