数据结构-树状数组

数据结构-树状数组

树状数组是一种类似于前缀和的数据结构,但是前缀和的修改操作是 O(n)的,查询是 O(1) 的 。所以就有了树状数组这个数据结构,它的两种操作被中和了,都是 O(logn) 的。

C++ 复制代码
int nums[N];
//算出最后一位1的位置
int lowbit (int x) 
{    
    return x & -x;
}
//查询前缀和,时间复杂度O(logn)
int ask(int x)
{
    int res=0;
    for(;x;x-=lowbit(x)) res+=nums[x];
    return res;
}
//单点修改,时间复杂度O(logn)
int add(int x,int y)//nums[x]+y
{
    for(;x<=n;x+=lowbit(x)) nums[x]+=y;
}
相关推荐
黄河123长江10 分钟前
有限Abel群的结构()
算法
峥无17 分钟前
C++11 深度详解:现代 C++ 基石全梳理
开发语言·c++·笔记
阿米亚波28 分钟前
【C++ STL】std::unordered_multimap
开发语言·数据结构·c++·笔记·stl
Jerry1 小时前
LeetCode 92. 反转链表 II
算法
小王C语言1 小时前
【3. 基于 Vibe Coding 的 OJ 平台】. 构建仓库、环境准备、需求梳理、安装依赖
网络·c++
骊城英雄1 小时前
Rust从入门到精通-trait
人工智能·算法·rust
可编程芯片开发2 小时前
基于PI控制算法的pwm直流电机控制系统Simulink建模与仿真
算法
小王C语言2 小时前
【8.进行接口测试】:通过 curl 进行接口自动化测试 / 通过 python 程序进行接口自动化测试
网络·c++
怕浪猫2 小时前
2840亿参数只卖白菜价:DeepSeek V4 Flash 正式版上线,Agent 能力暴涨6倍
人工智能·算法
让学习成为一种生活方式2 小时前
苄基异喹啉生物碱糖基转移酶UGT74AN1晶体--Journal of Agricultural and Food Chemistry
人工智能·算法