【发布时间】:2020-10-04 01:14:09
【问题描述】:
我需要在数组的某个范围内计算总和,因此我遇到了 Segment Tree 和 Fenwick Tree,我注意到这两个树都以相同的渐近运行时间进行查询和更新。我做了更多的研究,这两种数据结构似乎以相同的速度做所有事情。两者都有线性内存使用(Segment Tree 使用两倍)。
除了运行时间/内存和实现方面的恒定因素之外,还有什么理由让我选择其中一个?
我正在寻找一个客观的答案,比如某个操作比另一个操作更快,或者某个限制可能有另一个限制。
我看到了另外 2 个关于此的 StackOverflow 问题,但答案只是描述了这两种数据结构,而不是解释什么时候一个可能比另一个更好。
【问题讨论】:
标签: algorithm tree segment-tree fenwick-tree