写点什么

8.3 红黑树原理与性能特性

用户头像
张荣召
关注
发布于: 2020 年 11 月 16 日



1.树



解析:1.父节点可以查找子节点;2.子节点可以找到父节点。



2.二叉排序树

左子树上所有结点的值均小于等于它的根节点的值。

右子树上所有结点的值均大于等于它的根节点的值。

左右子树也分别为二叉排序树。

时间复杂度O(logn).

3.不平衡的二叉排序树

        解析:有序添加元素。蜕化成链表。

4.平衡二叉(排序)树

解析:从任何一节点触发,左右子树深度之差的绝对值不超过1.

          左右子树仍然为平衡二叉树。

时间复杂度:O(N)

5.旋转二叉树恢复平衡

#########################################################################

解析:插入时,最多需要两次旋转就会重新恢复平衡。

          删除时,需要维护从被删节点到根节点这条路径上所有节点的平衡性,时间复杂度O(logN).

       

6.红黑(排序)树

解析:1.每个节点只有两种颜色。

          2.根节点是黑色。(根黑)

          3.每个叶子结点(null)都是黑色的空节点。(叶黑)

          4.从任何一个节点出发,到叶子节点,这条路径上都有相同数目的黑色节点。(相同黑色数)

          5.从根节点到叶子节点,不会出现两个连续的红色节点。(红色不连续)

增删节点的时候,红黑树通过染色和旋转,保持红黑树保持定义。

6.红黑树 VS 平衡二叉树

      红黑树最多只需3次旋转就会重新达到红黑平衡,时间复杂度O(1).

      在大量增删的情况下,红黑树的效率更高。

      红黑树的平衡性不如平衡二叉树,查找效率要差一些。

      红黑树:增删效率高。

      平衡二叉树:查询效率高。(深度差不超过1)

7.跳表

       跳表代替红黑树,提升查询效率。

 ########################################################################

########################################################################

解析:复杂度2*O(logn)。

          优点:查询效率高,算法简单。

          缺点:空间复杂度比较高。



用户头像

张荣召

关注

还未添加个人签名 2018.05.02 加入

还未添加个人简介

评论

发布
暂无评论
8.3红黑树原理与性能特性