1.二叉搜索树,平衡二叉树,红黑树的算法效率
操作  二叉查找树   平衡二叉树   红黑树
查找  O(n)         O(logn)    O(log2 n)
插入  O(n)         O(logn)    O(log2 n)
删除  O(n)         O(logn)    O(log2 n)
Olog(n)怎么算出来的?
在一个树中查找一个数字,第一次在根节点判断,第二次在第二层节点判断,
以此类推,树的高度是多少就会判断多少次,树的高度和节点的关系就是以2为底,树的节点总数n的对数!2.为什么工程中都用红黑树,而不是其他平衡二叉树?
<1>.红黑树放弃了追求完全平衡,追求大致平衡,在与平衡二叉树的时间复杂度相差不大的情况下,保
证每次插入最多只需要三次旋转就能达到平衡,实现起来也更为简单.一种二叉查找树,但在每个节
点增加一个存储位表示节点的颜色,可以是红或黑(非红即黑)。通过对任何一条从根到叶子的路径上各个节点着色的方式的限制,红黑树确保没有一条路径会比其
它路径长出两倍,因此,红黑树是一种弱平衡二叉树(由于是弱平衡,可以看到,在相同的节点情况
下,AVL树的高度低于红黑树),相对于要求严格的AVL树来说,它的旋转次数少,所以对于搜索,插
入,删除操作较多的情况下,我们就用红黑树。<2>.AVL树是带有平衡条件的二叉查找树,一般是用平衡因子差值判断是否平衡并通过旋转来实现平
衡,左右子树树高不超过1,和红黑树相比,AVL树是严格的平衡二叉树,平衡条件必须满足(所有节
点的左右子树高度差不超过1)。不管我们是执行插入还是删除操作,只要不满足上面的条件,就要
通过旋转来保持平衡,而的英文旋转非常耗时的,由此我们可以知道AVL树适合用于插入与删除次数比较少,但查找多的情况.由于维护这种高度平衡所付出的代价比从中获得的效率收益还大,故而实际的应用不多,更多的地
方是用追求局部而不是非常严格整体平衡的红黑树。当然,如果应用场景中对插入删除不频繁,只是
对查找要求较高,那么AVL还是较优于红黑树。3.红黑树使用场景?
假设你计算机里存有十亿个身份证信息,你要用计算机在这些身份证信息里进行增加、删除、查找等
操作,应该怎样设计程序实现这些功能?最简单的笨办法,当然是逐条比对,但是这样的操作要进行平均1/2x10000000次比对,也就是平均5亿次.如果应用红黑树,就只要最多log₂1000000000 = 29.897次比对,也就是最多30次.30次 vs 5亿次,程序性能提升了1600多万倍。

平衡二叉树(AVL树)和红黑树区别相关推荐

  1. AVL树和红黑树区别

    二叉查找树: 二叉查找树就是左结点小于根节点,右结点大于根节点的一种排序树,也叫二叉搜索树.也叫BST.二叉查找树比普通树查找更快,查找.插入.删除的时间复杂度为O(logN).但是二叉查找树有一种极 ...

  2. B树,B+树,红黑树应用场景AVL树,红黑树,B树,B+树,Trie树

    B B+运用在file system database这类持续存储结构,同样能保持lon(n)的插入与查询,也需要额外的平衡调节.像mysql的数据库定义是可以指定B+ 索引还是hash索引. C++ ...

  3. 讲透学烂二叉树(五):分支平衡—AVL树与红黑树伸展树自平衡

    简叙二叉树 二叉树的最大优点的就是查找效率高,在二叉排序树中查找一个结点的平均时间复杂度是O(log₂N): 在<讲透学烂二叉树(二):树与二叉/搜索/平衡等树的概念与特征>提到 二叉排序 ...

  4. 二叉排序树、AVL树、红黑树、B树、B+树、Hash树、

    二叉排序树 1.基本应用 二叉排序树也称为也叫二叉查找树,二叉搜索树, BST. 满足二叉查找树的一般性质,是指一棵空树具有如下性质: 对于二叉树中的任何一个非叶子节点,要求左子节点比当前节点值小,右 ...

  5. B树、B+树、AVL树、红黑树

    from: http://blog.csdn.net/chlele0105/article/details/8473846 binary search tree,中文翻译为二叉搜索树.二叉查找树或者二 ...

  6. 浅谈二叉查找树、AVL树、红黑树、B树、B+树的原理及应用

    一.二叉查找树 1.简介 二叉查找树也称为有序二叉查找树,满足二叉查找树的一般性质,是指一棵空树具有如下性质: 任意节点左子树不为空,则左子树的值均小于根节点的值. 任意节点右子树不为空,则右子树的值 ...

  7. 种树:二叉树、二叉搜索树、AVL树、红黑树、哈夫曼树、B树、树与森林

    虽然今天不是植树节,但是我今天想种树. 文章目录 树,什么是树? 二叉树 定义 二叉树的创建 二叉树的前中后序遍历 前序遍历: 中序遍历 后序遍历 已知前序.中序遍历结果,还原二叉树 已知后序.中序遍 ...

  8. 总结下各种常见树形结构的定义及特点(二叉树、AVL树、红黑树、Trie树、B树、B+树)

    文章目录 前言 一棵普通的树 相关术语 二叉树 二叉树性质 二叉树特例 二叉查找树 AVL树 特点及应用 红黑树 特点 应用 Trie树 特点及应用 B树 定义及特点 应用 B+树 B+树的优势及应用 ...

  9. AVL树和红黑树(map和set的底层实现)

    map和set的概念及使用 map和set的底层结构 map和set其底层都是按照二叉搜索树来实现的,但是二叉搜索树有其自身的缺陷,假如往树中插入的元素有序或者接近有序,二叉搜索树就会退化成单支树,时 ...

最新文章

  1. Linux有问必答-如何创建和挂载XFS文件系统
  2. python 中的*(星号)和**(双星号)简介
  3. 杂牌手柄模拟xboxone手柄_震了,Xbox One 精英手柄2代摸了一次就不舍得放下了
  4. 养成这8个好习惯 开车会很安全的
  5. vim可以用来编译python吗_Linux下编译Vim以支持python2.x
  6. ArcEngine二次开发_01(鼠标左击右击地图响应不同事件)
  7. Error: Trying to remove yum, which is protected
  8. Linux ANSYS FLUENT 在集群上的安装与配置
  9. 证券公司主要信用业务(融资融券、股票质押、约定购回)
  10. Springcloud微服务中多模块重复代码重构成公共模块的实现
  11. 叶笑嘴角露出来一个不知是什么意味的笑容
  12. 6-13 折半查找 (15 分)
  13. rosetta_ddg 使用-rosetta 2020版
  14. Day41——Dp专题
  15. P6LED显示屏价格报价用材规格与技术参数
  16. PPP协议(PPP协议链路建立过程、PAP、CHAP、华为虚拟网络设备配置)
  17. python 仪表盘数据显示_Python制作仪表盘图,比Excel快速百倍
  18. MyBatisPlus中条件构造器中or和orNew的区别
  19. 计算机上面的字母代表什么意思,电脑主板上面的字母型号是什么意思
  20. ArcGIS入库操作

热门文章

  1. mysql配置和管理(转载)
  2. 2016OSC源创会年终盛典-前端技术专场-阴明
  3. 【开源毕设】一款精美的家校互动APP分享——爱吖校推 [你关注的,我们才推](持续开源更新2)...
  4. Future 接口介绍
  5. 【Android LibGDX游戏引擎开发教程】第06期:图形图像的绘制(下)图片整合工具的使用...
  6. iText操作PDF基础
  7. iphonex黑屏开不了机_iphonexr死机,iphonexr开不了机
  8. python修饰符号的使用_Python 函数修饰符(装饰器)的使用
  9. 机器学习实战8-Apriori算法
  10. mysql数据库在linux下的导出和导入及每天的备份