目录

B树

特性

结构

应用:

B+树

特性

数据结构

应用:

红黑树

特性

数据结构 

​应用:

相关问题

B树跟B+树比较


B树

特性

一个m阶的B树具有如下特征:

  1. 根结点至少有两个子女。
  2. 每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m
  3. 每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m
  4. 所有的叶子结点都位于同一层
  5. 每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域分划。

结构

B树、B+树、红黑树详细解析 

每次深度加1就会进行一次磁盘IO的查询,将当前高度的数据加到内存中,再进行数值比较。从中可以看出相比大部分的查询时间是花费在磁盘IO的速度上,所以要想提高性能就是将树的高度足够低,IO次数足够少,这就是B树的优势。 

B树可以直接得到内部节点的值

应用:

主要用于文件系统以及部分数据库索引(MongoDB) 而Mysql是用B+树的。


B+树

特性

  1. 有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
  2. 所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
  3. 所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。

数据结构

B树、B+树、红黑树详细解析 

应用:

mysql索引 磁盘


红黑树

特性

  1. 每个结点要么是红的,要么是黑的。
  2. 根结点是黑的。
  3. 每个叶结点(叶结点即指树尾端NIL指针或NULL结点)是黑的。
  4. 如果一个结点是红的,那么它的俩个儿子都是黑的。
  5. 对于任一结点而言,其到叶结点树尾端NIL指针的每一条路径都包含相同数目的黑结点

数据结构 

B树、B+树、红黑树详细解析
应用:

内部排序,全部放在内存中的,比如HashMap

红黑树解决的问题,它可以在O(log n)时间复杂度内实现查找,插入和删除,任何不平衡都会在三次旋转内解决。

设计红黑树就是为了解决平衡树维护麻烦的问题


相关问题

B树跟B+树比较

B+树相比B树拥有更小的磁盘代价,读写代价更低(因为同样的数据量,B+树比B树高度低,因为B+树非叶子节点不保存数据),B+树的查询关键字的路径相等,即从根节点到叶子节点的路径,即每个数据的查询效率相等且稳定。

B树的查找可能比B+树更加快点,因为B树的数据值都在对应的节点上,可能会比B+树更快的返回。但是如果要去连续的一段值的话,B+树更加的合适。符合空间局部性。

 

 

相关文章:

  • 2021-06-03
  • 2021-10-29
  • 2021-11-09
  • 2021-12-08
  • 2021-08-11
  • 2021-07-23
  • 2021-09-12
  • 2021-09-12
猜你喜欢
  • 2021-04-09
  • 2021-05-09
  • 2021-05-08
  • 2021-09-08
  • 2021-07-21
  • 2021-10-22
  • 2022-01-03
相关资源
相似解决方案