线段树简介:https://blog.csdn.net/Yaokai_AssultMaster/article/details/79599809
树状数组简介:https://blog.csdn.net/Yaokai_AssultMaster/article/details/79492190
存在一个长度为n的数组,我们如何高效进行如下操作:
1)update(idx, delta):将num加到位置idx的数字上。
2)prefixSum(idx):求从数组第一个位置到第idx(含idx)个位置所有数字的和。
3)rangeSum(from_idx, to_idx):求从数组第from_idx个位置到第to_idx个位置的所有数字的和
若构建一个前n项和数组,三个操作分别是O(n), O(1), O(1).
若是update的操作较多,为了降低update复杂度,可采用树状数组,树状数组三个操作分别是O(logn), O(logn), O(logn).