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