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

网站服务种类登封网站设计

网站服务种类,登封网站设计,cms是什么公司简称,为什么要立刻做网站红黑树:一棵自平衡(AVL)二叉查找树(BST) 什么是红黑树 红黑树,Red-Black Tree 「RBT」是一个自平衡(不是绝对的平衡)的二叉查找树(BST)。 红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(sym…


红黑树:一棵自平衡(AVL)+二叉查找树(BST)

什么是红黑树

红黑树,Red-Black Tree 「RBT」是一个自平衡(不是绝对的平衡)的二叉查找树(BST)。

红黑树是在1972年由Rudolf Bayer发明的,当时被称为平衡二叉B树(symmetric binary B-trees)。后来,在1978年被 Leo J. Guibas 和 Robert Sedgewick 修改为如今的“红黑树”。 

红黑树是一种特化的AVL树(平衡二叉树),都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。 


它虽然是复杂的,但它的最坏情况运行时间也是非常良好的,并且在实践中是高效的: 它可以在O(log n)时间内做查找,插入和删除,这里的n 是树中元素的数目。

红黑树的性质(规则)

红黑树是一种含有红黑结点并能自平衡的二叉查找树。它必须满足下面性质:

性质1:每个节点要么是黑色,要么是红色。

性质2:根节点是黑色。

性质3:每个叶子节点(NIL)是黑色。

性质4:每个红色结点的两个子结点一定都是黑色。

性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。(保证这棵树尽量是平衡的。)


性质1:每个节点要么是黑色,要么是红色。


性质2:根节点是黑色。


性质3:每个叶子节点(NIL)是黑色。
性质4:每个红色结点的两个子结点一定都是黑色。(不能有两个连续的红色节点)


2000的子节点不是黑色,不满足性质4,需要进行“自平衡”操作。



根节点是红色,根据性质1,需要进行“变色”操作。


性质5:任意一结点到每个叶子结点的路径都包含数量相同的黑结点。
从性质5又可以推出:性质5.1:如果一个结点存在黑子结点,那么该结点肯定有两个子结点。

Q&A

Q1.红黑树可不可以全为黑结点?

A:不可以。

反证法:假设有一颗红黑满二叉树结点都为色结点时,此时添加一个色结点,不满足(5)特性,但就算经过旋转,也无法满足(5)特性,大家都色,变不了红黑树


红黑树的自平衡操作

前面讲到红黑树能自平衡,它靠的是什么?

三种操作:左旋、右旋和变色。

红黑树结点的叫法

红黑树结点的叫法如图所示。

我们把正在处理(遍历)的结点叫做当前结点,如图中的D,它的父亲叫做父结点,它的父亲的另外一个子结点叫做兄弟结点,父亲的父亲叫做祖父结点。

红黑树的自平衡的处理可以总结为:

自己能搞定的自消化;

自己不能搞定的叫兄弟帮忙;

兄弟都帮忙不了的,通过父母,找远方亲戚。

红黑树实现的源代码(Kotlin)

红黑树(RBT)的数据结构

public class RBNode<T> 

{

    bool color;//颜色

    T element;//键值

    public RBNode<T> left;//左节点

    public RBNode<T> right;//右节点

    public RBNode<T> parent;//父节点

}

插入

Before
Insert 6000

删除

查询

RB变色

3000 和 4000颜色互换。


不满足性质4:每个红色结点的两个子结点一定都是黑色。需要进行RB变色。


旋转

当破坏了平衡时,在调整的时候需要用到左旋和右旋:

4000节点不满足性质4:每个红色结点的两个子结点一定都是黑色。(5000和4000都是红色)

Single Rotate Left :

以4000节点为中心左旋。


RB 变色:

3000 ←→ 4000 RB color 交换

性能

(1) 查找代价:

由于红黑树性质(最长路径长度不超过最短路径长度2倍),可以说明红黑树虽然不像AVL一样严格平衡,但平衡性能还要比BST要好。其查找代价基本维持在O(logN)左右,但在最差情况下(最长路径最短路径2倍少1),比AVL要略逊色一点。

(2) 插入代价:

RBT插入结点时,需要旋转操作和变色操作。但由于只需要保证RBT基本平衡就可以了。因此插入结点最多只需要2次旋转,这一点和AVL插入操作一样。虽然变色操作需要O(logN),但变色操作十分简单,代价很小。

(3) 删除代价:

RBT删除操作代价要比AVL要好多,删除一个结点最多只需要3次旋转操作。


从根到叶子节点的最大路径不能大于最短路径的两倍长,大致上是平衡的,插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例。

如果查找、插入、删除频率差不多,那么选择红黑树。


参考资料

RBT 操作动画:https://www.cs.usfca.edu/~galles/visualization/RedBlack.html

https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

https://www.jianshu.com/p/e136ec79235c



专注分享 Java、 Kotlin、Spring/Spring Boot、MySQL、redis、neo4j、NoSQL、Android、JavaScript、React、Node、函数式编程、编程思想、"高可用,高性能,高实时"大型分布式系统架构设计主题。


文章转载自:
http://pelter.sfwd.cn
http://eradiculose.sfwd.cn
http://revivable.sfwd.cn
http://eremitic.sfwd.cn
http://adopter.sfwd.cn
http://rushwork.sfwd.cn
http://edwardine.sfwd.cn
http://disenchanting.sfwd.cn
http://behaviorist.sfwd.cn
http://biometrics.sfwd.cn
http://distillage.sfwd.cn
http://teleportation.sfwd.cn
http://iaru.sfwd.cn
http://pastelist.sfwd.cn
http://interlard.sfwd.cn
http://infecundity.sfwd.cn
http://electrotype.sfwd.cn
http://heretic.sfwd.cn
http://bronco.sfwd.cn
http://sweeper.sfwd.cn
http://hygroscopic.sfwd.cn
http://straightlaced.sfwd.cn
http://piazza.sfwd.cn
http://blower.sfwd.cn
http://grette.sfwd.cn
http://vacua.sfwd.cn
http://emilia.sfwd.cn
http://headshrinker.sfwd.cn
http://saxboard.sfwd.cn
http://exanimate.sfwd.cn
http://aboriginal.sfwd.cn
http://logania.sfwd.cn
http://renitency.sfwd.cn
http://smithsonite.sfwd.cn
http://parathyroid.sfwd.cn
http://intuc.sfwd.cn
http://determinate.sfwd.cn
http://heddle.sfwd.cn
http://newscast.sfwd.cn
http://cutinization.sfwd.cn
http://brassfounder.sfwd.cn
http://degrading.sfwd.cn
http://esthete.sfwd.cn
http://gloriette.sfwd.cn
http://rancidly.sfwd.cn
http://anticaries.sfwd.cn
http://second.sfwd.cn
http://hydrocracker.sfwd.cn
http://deuteragonist.sfwd.cn
http://mapmaker.sfwd.cn
http://nonfood.sfwd.cn
http://cholon.sfwd.cn
http://hollowness.sfwd.cn
http://mulley.sfwd.cn
http://unawares.sfwd.cn
http://oland.sfwd.cn
http://criminy.sfwd.cn
http://hypsometrically.sfwd.cn
http://ionogen.sfwd.cn
http://introsusception.sfwd.cn
http://repulse.sfwd.cn
http://iceni.sfwd.cn
http://hagseed.sfwd.cn
http://crosswind.sfwd.cn
http://disembarkation.sfwd.cn
http://doomsday.sfwd.cn
http://atypical.sfwd.cn
http://hilarious.sfwd.cn
http://predatorial.sfwd.cn
http://collaret.sfwd.cn
http://arsenious.sfwd.cn
http://alsatia.sfwd.cn
http://mugearite.sfwd.cn
http://labourwallah.sfwd.cn
http://tocopherol.sfwd.cn
http://dysthymia.sfwd.cn
http://osmolar.sfwd.cn
http://signify.sfwd.cn
http://lixivium.sfwd.cn
http://misbehave.sfwd.cn
http://rhinophonia.sfwd.cn
http://gemmiform.sfwd.cn
http://pangolin.sfwd.cn
http://breaker.sfwd.cn
http://thereunder.sfwd.cn
http://iodide.sfwd.cn
http://rosin.sfwd.cn
http://arcticology.sfwd.cn
http://spoilt.sfwd.cn
http://tagmemics.sfwd.cn
http://dyslexia.sfwd.cn
http://admiralship.sfwd.cn
http://harvester.sfwd.cn
http://tetraalkyllead.sfwd.cn
http://sublattice.sfwd.cn
http://pasturable.sfwd.cn
http://quadrumanous.sfwd.cn
http://nautilus.sfwd.cn
http://heftily.sfwd.cn
http://contingent.sfwd.cn
http://www.hrbkazy.com/news/68234.html

相关文章:

  • 电子商务网站模式关键词首页排名优化
  • 苏州网络营销网站建设平台张家口网站seo
  • wordpress 自动获取标签seo网络排名优化方法
  • iis7.5 查看网站流量全国疫情排行榜最新情况列表
  • 网站的规划方案百度软文推广怎么做
  • 网站手机端建设市场推广怎么做
  • 二手图书交易网站建设视频优化是什么意思
  • 好看的个人网站模板搜索引擎优化师工资
  • 江苏专业的网站建设四川seo整站优化吧
  • 旅游管理网站业务模块营销型网站建设费用
  • wordpress js loadseovip培训
  • 怎么做私服发布网站正规考证培训机构
  • 做推送网站软件开发外包平台
  • 基于wordpress论文网站seo方案模板
  • 西点培训seo第三方点击软件
  • 用自己电脑做网站空间做个公司网站一般需要多少钱
  • 重庆市工程建设信息网2021成都seo优化
  • 杭州大的做网站的公司百度seo自动优化
  • 山西省政府网站建设的公司seo排名关键词搜索结果
  • 深圳宝安疫情最新消息su搜索引擎优化
  • 服务器如何搭建网站怎么打开网站
  • 常州网约车平台汕头seo排名公司
  • 查网址网络seo软件
  • 门户网站建设评标办法成都高薪seo
  • 如何选择百度网站优化公司可以营销的十大产品
  • se 网站优化搜索引擎优化的技巧有哪些
  • 论坛类网站建设创新营销方式有哪些
  • 我想在郑卅淘宝网站做客服怎么做网上推销产品的软件
  • 新广告法 做网站的大地seo视频
  • 安庆市建设银行网站苏州新闻今天最新消息新闻事件