当前位置: 首页 > wzjs >正文

泸州市建设工程管理局网站商品管理系统

泸州市建设工程管理局网站,商品管理系统,网站诚信建设,海尔集团电商网站建设线段树与Fenwick树详解及C语言实现 线段树简介 线段树(Segment Tree)是一种二叉树结构,主要用于在数组修改的同时,快速进行区间查询。常见应用包括区间求和、区间最小值、区间最大值等。 线段树的特点 时间复杂度:…

线段树与Fenwick树详解及C语言实现

线段树简介

线段树(Segment Tree)是一种二叉树结构,主要用于在数组修改的同时,快速进行区间查询。常见应用包括区间求和、区间最小值、区间最大值等。

线段树的特点

  • 时间复杂度:构建、查询和更新均为O(log n)
  • 适用场景:频繁的区间操作,如区间更新和查询

Fenwick树(树状数组)简介

Fenwick树(树状数组)是一种高效处理前缀和及单点更新的数据结构。其核心操作是通过lowbit函数获取当前索引的最低位1所代表的值。

Fenwick树的特点

  • 时间复杂度:构建、查询和更新均为O(log n)
  • 适用场景:前缀和查询和单点更新

Fenwick树的C语言实现

#include <stdio.h>
#define MAXN 1000
int tree[MAXN + 1];
int lowbit(int x) { return x & -x; }
void update(int index, int value, int n) { while (index <= n) { tree[index] += value; index += lowbit(index); } }
int query(int index) { int result = 0; while (index > 0) { result += tree[index]; index -= lowbit(index); } return result; }
int range_query(int left, int right) { return query(right) - query(left - 1); }
int main() {int n = 10, arr[] = {0, 1, 7, 3, 0, 7, 8, 3, 2, 6, 2};for (int i = 1; i <= n; i++) update(i, arr[i], n);printf("前5个元素的和:%d\n", query(5));printf("区间[3, 7]的元素和:%d\n", range_query(3, 7));update(4, 5, n);printf("更新后前5个元素的和:%d\n", query(5));return 0;
}

Fenwick树的下标示意图

以下为大小为25的Fenwick树的下标关系示意图:
在这里插入图片描述
在这里插入图片描述

graph TDA1[1] --> A2[2]A2 --> A4[4]A3[3] --> A4A4 --> A8[8]A5[5] --> A6[6]A6 --> A8A7[7] --> A8A9[9] --> A10[10]A10 --> A12[12]A11[11] --> A12A12 --> A16[16]A13[13] --> A14[14]A14 --> A16A15[15] --> A16A17[17] --> A18[18]A18 --> A20[20]A19[19] --> A20A20 --> A24[24]A21[21] --> A22[22]A22 --> A24A23[23] --> A24A25[25]style A26 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5style A28 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5style A29 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5style A30 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5style A31 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5style A32 fill:#f0f0f0,stroke:#888,stroke-dasharray:5,5

说明

  • 节点含义:每个节点i保存从i - lowbit(i) + 1i区间的前缀和。
  • 索引关系
    • lowbit函数用于计算索引的最低位1,确定区间范围。
    • 例如:节点8保存[1,8]的和,节点4保存[1,4]的和。


文章转载自:

http://gHO4WILt.xqndf.cn
http://ipjBK5Dc.xqndf.cn
http://JbyFboA5.xqndf.cn
http://H6R30GWk.xqndf.cn
http://jtBgmqx3.xqndf.cn
http://MS9iKkOD.xqndf.cn
http://cDvf9zna.xqndf.cn
http://iCkRFqV8.xqndf.cn
http://TbBT7saW.xqndf.cn
http://ApGImEKv.xqndf.cn
http://px3713Yz.xqndf.cn
http://UOYACizO.xqndf.cn
http://xaGiIqUG.xqndf.cn
http://JhrJ0u7H.xqndf.cn
http://QLs1bEUn.xqndf.cn
http://wcALrykC.xqndf.cn
http://KTGQ5mrF.xqndf.cn
http://2Cy0O5fc.xqndf.cn
http://eqksVfrJ.xqndf.cn
http://4Gl947yP.xqndf.cn
http://cFCUlWJW.xqndf.cn
http://oIhXOmPh.xqndf.cn
http://SlLd9qph.xqndf.cn
http://tGmFrOIz.xqndf.cn
http://tlAVqaj7.xqndf.cn
http://D77uyzwD.xqndf.cn
http://tufQe7QT.xqndf.cn
http://0FMfdvE3.xqndf.cn
http://55PNeY2F.xqndf.cn
http://fzoIMiB8.xqndf.cn
http://www.dtcms.com/wzjs/706207.html

相关文章:

  • 重庆营销型网站建设多少钱品牌标志设计的风格包括
  • 网站地图 怎么做大二dw网页设计作业成品
  • 网站开发温州怎么看网站文章的收录
  • 邯郸市建设局网站政策网站开发工程师需要哪些技术
  • 后缀为net的网站有哪些百度网站小程序怎么做
  • 为什么做的网站搜不出来的长春seo快速排名
  • 农产品网站建设策划书范文国外优秀网站模板
  • 利用qq 群做网站推广长春智联招聘网最新招聘
  • 汽车行业做网站山东省安全双体系建设网站地址
  • 怎么样给一个网站做横向导航栏wordpress是cms
  • 14版哥斯拉的官方做的宣传网站赣州网上商城
  • 如何绑定网站域名广州清洁公司
  • 网站建设具体流程电脑网站策划书
  • 四川细胞库网站建设永城网站建设
  • 商务网站设计竹子系统做的网站可以优化么
  • 古风网站建设泛微e8做网站门户
  • 商城网站大全做网站开发的过程
  • 商务网站建设与维护 ppt软件设计模式
  • 药店怎么建设自己的网站WordPress页面登录才能看
  • 南京建设公司网站东莞建设网官网首页
  • 为什么大公司开发网站黄骅市属于
  • 公司网站建设费用会计科目建境模型公司官网
  • 南昌做网站哪里好网站建设工作室图片
  • 微网站可以自己做吗哪个网站做视频收益高
  • 佛山营销网站建设制作网站功能模块结构图
  • 怎么看一个网站好坏wordpress仿堆糖
  • 成都建站程序影视后期制作培训班价格
  • 哪个地区网站建设好云南建设厅网站设计
  • 长沙市住房与城乡建设厅网站网站模板 扁平化
  • 循化网站建设公司wordpress接入七牛云