我需要 CLRS 算法书中关于此练习的提示:
证明无论我们从高度为 h 的二叉搜索树中的哪个节点开始,k对 Tree-Successor 的连续调用O(k+h) time.
- Let
x
是起始节点并且z
是之后的结束节点k
连续调用 TREE-SUCCESSOR。
- Let
p
是之间的简单路径x
and z
包括的。
- Let
y
是共同的祖先x
and z
that p
visits.
- 长度为
p
至多是2h
,即O(h)
.
- Let
output
是它们的值之间的元素x.key
and z.key
包括的。
- 的大小
output
is O(k)
.
- 在执行中
k
连续调用 TREE-SUCCESSOR,
位于的节点p
被访问,
除了节点之外x
, y
and z
,
如果一个节点的子树p
被访问,那么它的所有元素都在output
.
- 所以运行时间是
O(h+k)
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)