算法笔记 - 树状数组 (Fenwick tree)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法笔记 - 树状数组 (Fenwick tree)相关的知识,希望对你有一定的参考价值。

参考技术A

对于一个长度为N数组array

lowbit函数 的作用是找到数字二进制的最后一个数字1。举例

加上lowbit数值 的作用,是找到最近的父亲节点。在修改点 的数值是,父亲的寻找过程是:

减去lowbit的数值 的作用,是找到每一个需要被统计的子树的根节点。 是上图红色标志的路线。对于 的数值,分别有三个子树需要被计算进来

C语言实现,来自维基百科。但是这里我修改了一点点,size放大了1, 更方便理解。数值的存储是

leetcode 的 683 - k-empty-slots 可以使用树状数组实现

以上是关于算法笔记 - 树状数组 (Fenwick tree)的主要内容,如果未能解决你的问题,请参考以下文章

Fenwick Tree / Binary Indexed Tree (树状数组)的学习

高级数据结构之Fenwick Tree(Binary Indexed Tree)

POJ 3321 Apple Tree DFS序+fenwick

树状数组

树状数组 小白篇

C++ 树进阶系列之树状数组的树形之路