首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

数据结构--树状数组

树状数组 类似数据结构:线段树(Segment Tree) 树状数组 跟 线段树 的区别: 树状数组能做的事情,线段树都能做!...(线段树功能更牛) 树状数组代码简单,实现起来比线段树容易(树状数组代码更简单) 树状数组的 查询 和 修改 复杂度都为 log⁡(n)\log(n)log(n) ?...单点修改 树状数组的核心函数lowbit(int m):作用是求出 m 的二进制表示的末尾1的位置,对于要查询 m 的前缀和,m = m - lowbit(m) 代表不断对二进制末尾1进行-1操作,不断执行直到...int r)//区间[l,r]的和 { return query_p(r)-query_p(l-1); } int main(){ //单点修改 cout << "单点修改,单点查询...参考文献 百度百科:树状数组 树状数组入门(简单的原理讲解) 树状数组详解 树状数组 数据结构详解与模板(可能是最详细的了)

1.9K20

创建树状目录结构

标签:VBA,用户窗体,TreeView控件 我们都知道,使用TreeView控件可以创建树状目录结构,但如何创建,还是有些技巧,这就是本文要介绍的内容。...如图1所示,使用TreeView创建了树状目录结构。 图1 细心的朋友可能注意到,这个目录是根据工作表中的内容结构创建的。...只要我们按一定的规则在工作表中输入数据,代码就会根据这些数据创建出相应的分层目录结构。 如下图2所示,在VBE中插入一个用户窗体,然后布置相应的TreeView控件和按钮控件。....Style = tvwTreelinesPlusMinusText End With End Sub 注意,这个示例可以作为模板,代码不变,只需修改工作表中的数据就可以创建相应的目录层次结构

19410

高级数据结构树状数组

这时候你可能就会说了,线段树不就好了,但是线段树太繁琐了,我们有一个更好的工具:树状数组,它使得修改和查询都是 O(logn) 级别,可谓是中庸思想的典范。 2....+ a[2] + a[3] + a[4] c[12] = a[9] + a[10] + a[11] + a[12] // lowbit(12) = 4 数组c就是上图中所有的长方形,可以看成一个树形结构...其实不用太过于纠结细节内容,只需要理解下面的代码实现就行了,树状数组属于思想巨难但是代码很简单的东西。 由于树的层数最多是 logn 层这种方法查询和修改的时间复杂度都是 O(nlogn) 的。...拓展 4.1 区间修改+单点查询 树状数组只能进行单点修改+区间查询的操作,我们可以利用差分思想将区间修改+单点查询的操作转换成单点修改+区间查询。...所以我们只要对 b[i] 和 i * b[i] 进行树状数组的维护,就可以解决区间查询的问题了。

1.6K30

树状数组解决区间查询问题

本文扩写自郭神的《树状数组新应用》,在此表示膜拜。树状数组的学名貌似叫做Binary Index Tree,关于它的基本应用可参考Topcoder上的这篇Tutorial....树状数组可以看作一个受限制的线段树,它维护一个数组,最经典的树状数组支持的基本操作有两个:(1)改变某一个元素的值 (2)查询某一个区间内所有元素的和。...简单的树状数组模型是不支持这样一组操作的:(1)把某一个区间内所有元素都加上一个值 (2)查询某一个区间内所有元素的和。...当然,这个东西可以用线段树完成,但是线段树占内存比较大,写起来也比较繁(对我这种不会数据结构的人而言)。下面我们用一个改进版的树状数组完成这个任务。...可以发现对B数组是修改单个元素,查询区间和;对C数组是修改区间,查询单个元素,这恰好对应于一开始说的树状数组支持的基本操作。于是我们用两个树状数组漂亮地完成了任务。?

93320

聊聊mysql的树形结构存储及查询

序 本文主要研究一下mysql的树形结构存储及查询 存储parent 这种方式就是每个节点存储自己的parent_id信息 建表及数据准备CREATE TABLE `menu` ( `id` int...-----+ | 1 | level1a | 1 | 14 | | 3 | level2b | 8 | 13 | +----+---------+-----+-----+ -- 树形结构展示...-------------+ 好处是通过lft进行范围(该节点的lft,rgt作为范围)查找就可以,缺点就是增删节点导致很多节点的lft及rgt都要修改 小结 存储parent的方式最为场景,一般树形结构数据量不大的话...,直接在应用层内存构造树形结构和搜索 存储path的好处是可以借助path来查找节点及其子节点,缺点就是移动node需要级联所有子节点的path,比较费劲 MPTT的方式好处是通过lft进行范围(该节点的...lft,rgt作为范围)查找就可以,缺点就是增删节点导致很多节点的lft及rgt都要修改 doc Managing Hierarchical Data in MySQL hierarchical-data-database

3.9K30

MySQL查询导出数据表结构信息

问题描述 最近在写文档,需要用到数据库设计文档,表结构很多,如果一个个去复制黏贴,也是很花时间,所以需要借助INFORMATION_SCHEMA库的表 补充: information_schema数据库是...MySQL自带的,它提供了访问数据库元数据的方式。...元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等 解决方案 所以,需要借助INFORMATION_SCHEMA的里系统表,通过如下SQL查询: SELECT b.COLUMN_NAME...然后复制一下数据库里的数据,在word文档里,选择,然后黏贴一下就可以 总结归纳 通过这个方法,节省了写文档的时间,可以有更多时间去写代码,补充INFORMATION_SCHEMA是MySQL...数据库系统很重要的库,我们可以通过里面的系统表排查一些性能问题,也可以像本文一样来查出表结构来提高写文档效率,活学活用,学到的知识需要用起来

5.3K40

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券