Algorithm 二元搜索树中介于两个数字之间的所有数字求和所需的时间
假设我们有一个平衡的二叉搜索树T,其中包含n个数。我们有两个 数字L和H,并希望将T中位于L和H之间的所有数字相加。假设Algorithm 二元搜索树中介于两个数字之间的所有数字求和所需的时间,algorithm,search,Algorithm,Search,假设我们有一个平衡的二叉搜索树T,其中包含n个数。我们有两个 数字L和H,并希望将T中位于L和H之间的所有数字相加。假设 T中有m个这样的数字。有人能解释一下如何计算求和所需时间的绝对值吗?我让你来计算全部细节,但这是一个开始。算法如下: 查找树中大于L的最小数字。您可以在日志时间内完成此操作 在树上行走,每次移动到下一个最大的树,并将其添加到运行总数中 当到达至少为H的数字时停止 我假设“介于之间”表示“严格介于之间”,但您可能希望在步骤1和3中使用弱不等式。谢谢,解释得很好。“介于”的意思是
T中有m个这样的数字。有人能解释一下如何计算求和所需时间的绝对值吗?我让你来计算全部细节,但这是一个开始。算法如下:
L
的最小数字。您可以在日志时间内完成此操作H
的数字时停止我假设“介于之间”表示“严格介于之间”,但您可能希望在步骤1和3中使用弱不等式。谢谢,解释得很好。“介于”的意思是包括L和H。但我有一个疑问,我们考虑了搜索L所需的时间(即日志时间),但我们不需要搜索H。为什么?因为当你在树上行走时,你会发现
H
(或者第一个大于H
)。你需要知道从哪里开始走,但在那之后,你只需要依次处理元素,直到到达另一端。你也可以从另一个方向来做:找到H
,然后向后走,直到找到小于L
的东西。