曲愍糙 发表于 2025-6-4 22:56:43

树状数组(Fenwick Tree)原理和优化全面解析

你正在开发一个交易系统,需要实时完成两种操作:

[*]更新某个时间点的价格(单点修改)
[*]快速计算某段时间段内的交易总量(区间查询)
当数据量较小时,我们可能会这样实现:
vector<int> prices(n);
// 单点更新 - O(1)
prices += new_value;
// 区间查询 - O(n)
int sum = accumulate(prices.begin() + l, prices.begin() + r + 1, 0);但当数据量达到百万级时,这样的操作会导致严重的性能瓶颈。尤其当系统要求每秒处理数万次操作时,传统的数组结构显然力不从心。
聪明的开发者可能会想到前缀和优化:
vector prefix(n + 1);// 构建前缀和 - O(n)for(int i = 1; i

迎脾 发表于 2025-10-25 02:02:48

用心讨论,共获提升!

泠邸 发表于 2025-10-29 23:57:02

鼓励转贴优秀软件安全工具和文档!

掳诚 发表于 2025-11-4 00:56:26

谢谢分享,辛苦了

岑韬哎 发表于 2025-11-30 01:39:46

鼓励转贴优秀软件安全工具和文档!

迎脾 发表于 2025-12-8 04:40:21

收藏一下   不知道什么时候能用到

姘轻拎 发表于 3 天前

分享、互助 让互联网精神温暖你我
页: [1]
查看完整版本: 树状数组(Fenwick Tree)原理和优化全面解析