我需要计算数组范围内的总和,因此我遇到了 Segment Tree 和 Fenwick Tree,我注意到这两种树都以相同的渐近运行时间进行查询和更新。我做了更多的研究,这两种数据结构似乎以相同的速度完成所有事情。两者都具有线性内存使用量(段树使用量是其两倍)。
除了运行时间/内存和实现中的恒定因素之外,还有什么理由让我选择一个而不是另一个?
我正在寻找一个客观的答案,例如某些操作比另一个更快,或者可能某个限制另一个没有。
我看到了另外 2 个关于此的 StackOverflow 问题,但答案只是描述了这两种数据结构,而不是解释何时一个可能比另一个更好。
最佳答案
我read this on Quora .希望你觉得它有用。
关于algorithm - Fenwick树与段树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64190332/