gpt4 book ai didi

algorithm - BIT:无法理解二进制索引树中的更新操作

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:22:21 24 4
gpt4 key购买 nike

我刚刚阅读了关于 this question 的回答并且非常满意,这确实是一个很棒的答案。它教会了我 BIT 的工作。

但最后,倒数第二段是我挣扎的地方。它说,

Similarly, let's think about how we would do an update step. To do this, we would want to follow the access path back up to the root, updating all nodes where we followed a left link upward. We can do this by essentially doing the above algorithm, but switching all 1's to 0's and 0's to 1's. But if I see, take some example, it does not work just as by simply switching 1's and 0's, according to me.

例如假设我们要更新节点 5 处的值 = 101 切换 1 和 0,我们得到 010... 现在应用他们之前给出的过程,我们将最终更新一些其他节点左右。

我一定是弄错了。请指正。

提前谢谢你。

最佳答案

我认为你是对的。使用这个:

                     1
/ \
2 3
/ \ / \
4 5 6 7
/ \ / \ / \ / \
8 9 10 11 12 13 14 15

函数:

int root(int node_index) { return node_index >> 1 }

int left(int node_index) { node_index << 1 }

int right(int node_index) { left(node_index) | 1 }

关于algorithm - BIT:无法理解二进制索引树中的更新操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28396696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com