簡體   English   中英

使用大師定理,這個 function 的運行時間是多少

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

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