二维线段树_原创文档.pdf

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

二维线段树

二维线段树最主要用于平面统计问题。类似一维线段树,最经典的就是求区间最值

(或区间和),推广到二维,求得就是矩形区域最值(或矩形区域和),对于矩形区域

和,二维树状数组更加高效,而矩形区域最值,更加高效的方法是二维RMQ,但是二维RMQ

不支持动态更新,所以二维线段树还是有用武之地的。

如果对一维线段树已经驾轻就熟,那么直接来看下面两段对比,就可以轻松理解二维

线段树了。

一维线段树是一棵二叉树,树上每个结点保存一个区间和一个域,非叶子结点一定有

两个儿子结点,儿子结点表示的两个区间交集为空,并集为父结点表示的区间;叶子结点

的表示区间长度为1,即单位长度;域则表示了需要求的数据,每个父结点的域可以通过

两个儿子结点得出。

二维线段树是一棵四叉树,树上每个结点保存一个矩形和一个域,非叶子结点一定有

二或四个儿子结点,儿子结点表示的四个矩形交集为空,并集为父结点表示的矩形;叶子

结点表示的矩形长宽均为1,域则表示了需要求的数据,每个父结点的域可以通过四个儿

子结点得出。

一个4x3的矩形,可以用图1的树形结构来表示,给每个单位方块标上不同的颜色易

于理解。

图1

图1中,每个叶子结点的单位面积为1,非叶子结点表示的矩形进行四分后,如图2

所示,四个子矩形分别表示的是儿子结点表示的矩形区域。特殊的,当矩形面积为1XH

或者WX1的时候,变成了一维的情况,这就是为什么有些结点有四个子结点,而有些结

点只有两个子结点的原因了。

图2

基本结构已经清楚了,按照惯例,要介绍一下时空复杂度。

首先来看空间复杂度,一个WxH的矩形,根结点表示的矩形是WxH,令N=

max{W,H},那么这棵二维线段树的深度D=log2(N)+1,当这棵树是一棵满四叉树的时

候,结点数达到最大值,根据等比数列求和公式,最大情况的结点数为(4^D-1)/3。

更加直观的,当N=W=H=2^k,必定是一棵满四叉树,结点数为(4^D-1)/3=

(4^(k+1)-1)/3=(2^(2k+2)-1)/3,去掉分子上的零头1,约等于(4/3)*N^2,

所以空间复杂度为O(N^2)。

再来看时间复杂度,需要分情况:

建树:建树时必定访问到每个结点,而且都是访问一次,所以建树的复杂度为

O(N^2);

单点更新:每次更新一个单位矩形的值,访问时只会访问从树的根结点到叶子结点的

一条路径,所以单点更新的复杂度为O(log2(N))。

区域询问:情况类似一维的区间询问。从根结点开始拆分区域,当询问区域完全覆盖

结点区域时,不需要递归往下走,总体复杂度是O(log2(N)*log2(N))?这里还是

打个问号先,具体是一个log还是两个log记不清了,找个时间证明一下,可以肯定的

是,不会退化成O(N)。

接下来看看每个树结点需要保存一些什么信息,以最值为例,除了保存最值以外,有

可能需要知道这个最值在整个矩形的具体坐标,所以我们的最值信息dataInfo需要保存三

个信息,posx和posy表示最值的具体位置,val保存最值,由于二维线段树的空间复杂度

为O(N^2),所以坐标信息不会很大,为了尽力节省内存,坐标值用short来存即可。最值

val的话看实际情况而定,一般用int就够了。

treeNode则是线段树结点的结构体,其中成员由dataInfo对应的最值和son[4]表示

的子结点编号组成,我们的线段树结点采用静态结点,即每个线段树结点都对应静态数组

nodes中的某个元素,便于通过编号在O(1)的时间内获取到对应树结点的指针,son[4]记

录了四个子结点在nodes中的下标。仔细观察可以发现,

文档评论(0)

178****1027 + 关注
实名认证
内容提供者

专注于中小学教案的个性定制:修改,审批等。本人已有8年教写相关工作经验,具有基本的教案定制,修改,审批等能力。可承接教案,读后感,检讨书,工作计划书等多方面的工作。欢迎大家咨询^

1亿VIP精品文档

相关文档