数据结构-树状数组

数据结构-树状数组

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

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;
}

相关推荐

  1. 数据结构-树状数组

    2024-04-13 01:42:03       35 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-13 01:42:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-13 01:42:03       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-13 01:42:03       82 阅读
  4. Python语言-面向对象

    2024-04-13 01:42:03       91 阅读

热门阅读

  1. 【蓝桥杯-牛客冲刺题单】

    2024-04-13 01:42:03       49 阅读
  2. 动态规划(Dynamic Programming)详解

    2024-04-13 01:42:03       31 阅读
  3. iframe嵌入Vue页面实现免登方法

    2024-04-13 01:42:03       34 阅读
  4. 什么是感知器 怎么学习感知器

    2024-04-13 01:42:03       35 阅读
  5. 2、ipex-llm(原bigdl-llm)应用聊天

    2024-04-13 01:42:03       39 阅读
  6. P2678 [NOIP2015 提高组] 跳石头

    2024-04-13 01:42:03       38 阅读
  7. Golang 为什么需要用反射

    2024-04-13 01:42:03       36 阅读
  8. Leetcode56_合并区间

    2024-04-13 01:42:03       39 阅读
  9. Latex中todonotes超出页面范围及其他参数说明

    2024-04-13 01:42:03       39 阅读
  10. 第十三届蓝桥杯省赛C&C++ 研究生组2.0

    2024-04-13 01:42:03       38 阅读
  11. Ajax跨域请求

    2024-04-13 01:42:03       36 阅读