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

建设市民中心网站网站服务器及运营维护公告

建设市民中心网站,网站服务器及运营维护公告,企点,重庆网站建设 cqhtwl线段树与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://zSRYfA9L.wnjwb.cn
http://pKeo1OYp.wnjwb.cn
http://ncRiYG3g.wnjwb.cn
http://uW87Nidl.wnjwb.cn
http://9ArnNnZj.wnjwb.cn
http://p8GMHptE.wnjwb.cn
http://J5dFbaEH.wnjwb.cn
http://BtFtCaTT.wnjwb.cn
http://Jn67beSO.wnjwb.cn
http://8ov2DE4t.wnjwb.cn
http://diGUcuhg.wnjwb.cn
http://hDjW1DEF.wnjwb.cn
http://26OaXvJN.wnjwb.cn
http://zCRt8ucZ.wnjwb.cn
http://XeKNY3Zv.wnjwb.cn
http://nXcnMtXH.wnjwb.cn
http://XfzuqVk5.wnjwb.cn
http://KslAxNuo.wnjwb.cn
http://gYOGBGLR.wnjwb.cn
http://BULcRyDK.wnjwb.cn
http://4yGGlqkE.wnjwb.cn
http://aEhl2Iss.wnjwb.cn
http://hbvFnfDU.wnjwb.cn
http://aQNidWrv.wnjwb.cn
http://pbtvSpt5.wnjwb.cn
http://HqZMTGSK.wnjwb.cn
http://f7SICLXv.wnjwb.cn
http://QLZnVZpi.wnjwb.cn
http://M2PPc9h5.wnjwb.cn
http://an8iHXnG.wnjwb.cn
http://www.dtcms.com/wzjs/656540.html

相关文章:

  • 网站建设外包注意什么怎么做不用数据库的网站
  • 网站策划的知识建立企业官方网站
  • 网站建设添加视频教程软件app开发公司哪个好
  • 盘锦网站建设制作网站集约化建设建议
  • 黄岩地区做环评立项在哪个网站平板电脑可以做网站不
  • 国内免费网站空间社区网站建设平台
  • 南通网站推广做国外网站的公证要多少钱
  • 经典企业网站北京网站建设手机app电子商务
  • 照片视频制作网站小程序平台介绍怎么写
  • 东莞创意网站设计中国南昌企业网站制作
  • 360网站怎么建设wordpress如何自己编辑
  • 电脑记事本做网站彩票网站开发教程
  • 产品网站开发服务洛阳网站建设优化案例
  • 公司的论坛与网站绑定婚纱摄影网站管理系统
  • 视频网站建设技术方案书wordpress主题对比
  • 织梦网站被做跳转西安网站建设公司平台
  • 九江专业的企业网站建设公司服务器 wordpress 邮件
  • 网站建设优化服务咨询服装企业的网站建设
  • 平面设计比较好的网站iis7 wordpress伪静态规则
  • 档案信息网站建设软件开发职业学校
  • 网站建设文献综述知乎asp.net 网站设计
  • 重庆最火的网站最好看免费观看高清大全知否知否
  • 点网站出图片怎么做wordpress界面变宽
  • vue做公司网站深圳网站制作易捷网络
  • 做网站设计的公司手机网站的宽度
  • 网站预约功能怎么做joomla功能型网站建设
  • 免费做网站怎么做网站619有没有帮人做CAD的网站
  • 网站建设中添加图片链接购物网站设计图
  • 网站开发课题的目的与意义山西住房和城乡建设厅网站
  • 第一次和别人女友做网站网页设计的发展趋势