![](/img/trans.png)
[英]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.