[英]Solving Range Minimum Queries using Binary Indexed Trees (Fenwick Trees)
[英]What are the differences between segment trees, interval trees, binary indexed trees and range trees?
段树、区间树、二叉索引树和范围树在以下方面有什么区别:
请不要只给出定义。
所有这些数据结构都用于解决不同的问题:
一维的性能/空间消耗:
(k 是报告结果的数量)。
所有数据结构都可以是动态的,因为使用场景包括数据更改和查询:
更高维度(d>1):
并不是说我可以在Lior 的回答中添加任何内容,但似乎可以用一张好桌子来做。
k
是报告结果的数量
手术 | 部分 | 间隔 | 范围 | 索引 |
---|---|---|---|---|
预处理 | 登录 | 登录 | 登录 | 登录 |
询问 | k+logn | k+logn | k+logn | 登录 |
空间 | 登录 | n | n | n |
插入/删除 | 登录 | 登录 | 登录 | 登录 |
d > 1
手术 | 部分 | 间隔 | 范围 | 索引 |
---|---|---|---|---|
预处理 | n(logn)^d | 登录 | n(logn)^d | n(logn)^d |
询问 | k+(logn)^d | k+(logn)^d | k+(logn)^d | (登录)^d |
空间 | n(logn)^(d-1) | 登录 | n(logn)^(d-1)) | n(logn)^d |
可以改进段树和二叉索引树的预处理范围和空间:
2n
空间中,然后使用动态规划在2n = O(n)
构建,如果您放弃在任意点添加间隔: https : //cp-algorithms.com/data_structures/segment_tree.html#toc- TG-6n
中构建,请参阅此答案: Is it possible to build a Fenwick tree in O(n)?O(log(n))
时间内的操作
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.