算法特性
树状数组,索引树,BIT(Binary Indexed Tree)
提供getSum(i)和update(i,val)函数。
可以获取目标数组第i位置(包括)往前所有元素的和(可以求和也可以求范围内最大或对小值),
可以动态更新某位置的值。getSum和update的时间复杂度都是O(logn)。
如果用一般的遍历方法求sum,时间复杂度是O(n),更新一个值的时间复杂度是O(1);
如果我们用dp sum的方式来实现sum的快速查询,那么查询的时间复杂度是O(1),但更新一个值的时间复杂度是O(n)相比较O(logn)较差。
使用BIT适用于查询和更新频繁度相当的情况,可以降低总的时间复杂度。
数据结构的实现
1 |
|
应用示例
1 |
|