1
分段求和问题的分段树实现的时间复杂度证明
我知道可以使用段树来找到的子数组的总和。根据此处的教程,该操作可以在时间内完成。一个AAO(对数n )O(logn)\mathcal{O}(\log n) 但是我无法证明查询时间确实是。此链接(以及许多其他链接)说,我们可以证明在每个级别上,已处理的最大节点数为,因此。O(对数n )O(logn)\mathcal{O}(\log n)444O(4对数n )= O(对数n )O(4logn)=O(logn)\mathcal{O}(4 \log n) = \mathcal{O}(\log n) 但是,我们怎么可能通过矛盾来证明这一点呢? 如果是这样,如果我们将分段树用于高维数组的范围和,该证明将如何扩展? 例如,我可以考虑通过将原始矩阵划分为4个象限(类似于线性阵列中的一半)来找到一个子矩阵总和,以构建一个象限分段树,但是证明使我难以理解。