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