族谱网 头条 人物百科

平衡树

2020-10-16
出处:族谱网
作者:阿族小谱
浏览:506
转发:0
评论:0
基本操作几乎所有平衡树的操作都基于树旋转操作,通过旋转操作可以使得树趋于平衡。对一棵查找树(searchtree)进行查询/新增/删除等动作,所花的时间与树的高度h成比例,并不与树的容量n成比例。如果可以让树维持矮矮胖胖的好身材,也就是让h维持在O(lgn)左右,完成上述工作就很省时间。能够一直维持好身材,不因新增删除而长歪的搜寻树,叫做balancedsearchtree(平衡树)。旋转Rotate——不破坏左小右大特性的小手术平衡树有很多种,其中有几类树维持平衡的方法,都是靠整形小手术:图中x与y为nodes;A,B,C为一整串的subtrees。试想:如果x原来是y的leftchild;现在想将x变成parent,则树的其它部分应如何变化?y必须变成rightchild,这样才能维持BST的特性--左小右大。至于x与y以下的其它部分,可以整串subtree一起处理:x原来的lefts...

基本操作

几乎所有平衡树的操作都基于树旋转操作,通过旋转操作可以使得树趋于平衡。 对一棵查找树(search tree)进行查询/新增/删除 等动作, 所花的时间与树的高度h 成比例, 并不与树的容量 n 成比例。如果可以让树维持矮矮胖胖的好身材, 也就是让h维持在O(lg n)左右, 完成上述工作就很省时间。能够一直维持好身材, 不因新增删除而长歪的搜寻树, 叫做balanced search tree(平衡树)。 旋转Rotate —— 不破坏左小右大特性的小手术 平衡树有很多种, 其中有几类树维持平衡的方法, 都是靠整形小手术:

图中 x 与 y 为 nodes; A, B, C 为一整串的 subtrees。 试想: 如果 x 原来是 y 的 left child; 现在想将 x 变成 parent, 则树的其它部分应如何变化? y 必须变成 right child, 这样才能维持 BST 的特性 -- 左小右大。 至于 x 与 y 以下的其它部分, 可以整串 subtree 一起处理: x 原来的 left subtree (A), 调整后还是 x 的 left subtree; y 原来的 right subtree (C), 调整后还是 y 的 right subtree; 而 x 原来的 right subtree (B), 调整后很自然只有一个地方可以放: 变成 y 的 left subtree。 这些规则都不需要记, 因为如果你希望调整后还维持 BST 左小右大的特性, 这是唯一的答案。 把 x,y 两个值及 A,B,C 三棵 subtrees 内的三串值画在数在线看更清楚:

x --------- y ---------

A B C 这个动作, 称为 right rotation 向右旋转, 或称为顺时针旋转 (clockwise)。 原来的 parent (y) 叫做 pivot, 原来的 child (x) 叫做 rotator。 把上图反过来看, 如果原来的树长得像右图, 想将它改成左图, 则称为 left rotation 向左旋转, 或称为逆时针旋转 (counter-clockwise)。 原来的 parent (x) 叫做 pivot, 原来的 child (y) 叫做 rotator。

各种平衡树

AVL树,经典平衡树, 所有操作的最坏复杂度都是 O ( log ⁡ ⁡ --> n ) {\displaystyle O(\log {n})} 的。

Treap,利用随机堆的期望深度来优化树的深度,达到较优的期望复杂度。

伸展树,使得经常查找的结点深度较小,从而降低均摊复杂度。

红黑树。

加衡树。

2-3树

AA树

替罪羊树

节点大小平衡树

其他类型

跳表,一种支持平衡树大多数操作的数据结构

应用

用于表示有序的线性数据结构,如优先队列、关联数组、键-值的映射等。自平衡的二叉查找树的实现与其竞争对手hash表的实现,各具有优缺点。自平衡二叉查找树在按序遍历所有键值时是量级最优的,hash表不能。自平衡二叉查找树在查找一个键值时,最坏情况下时间复杂度优于hash表, O(log n)对比O(n);但平均时间复杂度逊于hash表,O(log n)对比O(1)。

自平衡二叉查找树的排序方法,虽然在平均时间复杂度上也是O(n log n),但由于cache性能、树的调整操作等,性能上不如快速排序、堆排序、合并排序。


免责声明:以上内容版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。感谢每一位辛勤著写的作者,感谢每一位的分享。

——— 没有了 ———
编辑:阿族小谱
发表评论
写好了,提交
{{item.label}}
{{commentTotal}}条评论
{{item.userName}}
发布时间:{{item.time}}
{{item.content}}
回复
举报
点击加载更多
打赏作者
“感谢您的打赏,我会更努力的创作”
— 请选择您要打赏的金额 —
{{item.label}}
{{item.label}}
打赏成功!
“感谢您的打赏,我会更努力的创作”
返回

更多文章

更多精彩文章
打赏
私信

推荐阅读

· 平衡
参考文献HattoSchneider,Auswuchttechnik,VDI-VerlagGmbHVerlagdesVereins,Düsseldorf,1977.
· 平衡
种类平衡在物理学中可分成多个种类力学平衡当一个质点、刚体或质点系的速度矢量v→→-->{\displaystyle{\vec{v}}}为常矢量时,就称该物体或系统处于力学平衡状态。可以分成几种:静力平衡转动平衡热力学平衡
· 间断平衡
参见灾变论延伸阅读Adler,J.andCarey,J.(1982)"EnigmasofEvolution",Newsweek,March29,1982.Brett,C.E.,L.C.Ivany,andK.M.Schopf(1996)"Coordinatedstasis:Anoverview."PalaeogeographyPalaeoclimatologyPalaeoecology127(1-4):1-20.Erwin,D.H.andR.L.Anstey(1995)Newapproachestospeciationinthefossilrecord.NewYork:ColumbiaUniversityPress.Fitch,W.J.andF.J.Ayala(1995)Tempoandmodeinevolution:geneticsandpaleon...
· 平衡木
器械要求在国际大型体操比赛中使用的平衡木必须严格按照国际体操联合会的规定和要求制作。一些著名的制造平衡木的公司包括AAI(美国)、JannsenandFritsen(欧洲)和Acromat(澳大利亚)。平衡木高125厘米,长5米,宽10厘米。起初,平衡木的表面是光滑的油漆过的木头。自1980年代后,平衡木表面包裹皮革。现在,平衡木装有弹簧来缓解高难度的空翻和舞蹈技巧所产生的压力。大部分体操学校购买符合国际体操联合会标准的平衡木,有一些使用表面包裹毛毯的平衡木作为练习用。在学习新的动作的时候,运动员通常使用高度离里面仅有几十厘米,而其他尺寸不变的平衡木,这样可以减少危险性。动作要求在女子竞技体操发展早期,平衡木更多的是表现舞蹈而不是空翻。一套动作通常由跳跃、舞蹈造型、倒立、滚翻和走动组成。在1960年代,一般参加奥运会的体操运动员最难的动作是后手翻。1970年代平衡木的动作难度开始有了显著增...
· 动态平衡
化学上的解释在一个可逆的化学反应中,当正向反应及逆向反应的反应速率相等时就会达致动态平衡。在这个状态下不论生成物及反应物的浓度均没有改变,动态一词意指两个反应仍然在持续进行而非停滞,但刚好两者的速率相等,致使各自的浓度均没有改变,达致平衡状态。生态学上的解释在出生率及死亡率均为等值的情况下,某物种的种群数目维持不变就是一种动态平衡。

关于我们

关注族谱网 微信公众号,每日及时查看相关推荐,订阅互动等。

APP下载

下载族谱APP 微信公众号,每日及时查看
扫一扫添加客服微信