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

网站建设彳金手指排名wordpress电子书插件

网站建设彳金手指排名,wordpress电子书插件,网站开发费用一般为多少钱,wordpress制作二级菜单线段树与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://www.dtcms.com/a/593376.html

相关文章:

  • 石狮网站建设科技vmware做网站步骤
  • 全国网站建设公司排名泰安市人才交流服务中心
  • C++双向链表删除操作:由浅入深完全指南
  • 云手机轻松玩转网络手游
  • 手机拍照明晰度评估:传感器尺寸像素数量与处理器算法解析
  • Web VIVO手机商城网站项目4页面
  • 【杂谈】-人工智能时代的基础设施变革:引领未来十年科技发展的关键
  • 有关网络技术的网站iis7 建立网站
  • vue提交代码报错---eslint检查
  • 天津外贸公司网站制作wordpress中国区官方论坛
  • 成都企业网站商城定制网络推广方案包括哪些内容
  • 商城网站建设机构怎样做展示型网站
  • Rust类型系统奇技淫巧:幽灵类型(PhantomData)——理解编译器与类型安全
  • Visual Studio Code 之C/C++开发编译环境搭建
  • 长沙网站制造太原网站建设注意
  • PortSwigger靶场之SSRF with whitelist-based input filter通关秘籍
  • 太原网站快速排名提升手机商城网站制作公司
  • Redis 核心命令速查表
  • 中药饮片批发市场如何提升产品质量以迎合客户需求?
  • k8s中应用容器随redis集群自动重启
  • C语言结构体入门与实践:打造你的“数据百宝箱”
  • Docker核心概念与实战指南
  • 视频网站开发问题整人网站建设
  • 【Java】面向对象编程
  • 作业11.9
  • 西安网站开发公司网站服务器租用价格
  • 北京市城乡结合部建设领导小组办公室网站聊城做网站的公司效果
  • 百家号网站开发属于什么领域广东省住房和城乡建设局官网
  • MATLAB的加权K-means(Warp-KMeans)聚类算法
  • Python 图像处理库 scikit-image:从原理到实战