美文网首页算法
树--(二叉树、B树、B+树)

树--(二叉树、B树、B+树)

作者: de_self | 来源:发表于2020-03-22 19:59 被阅读0次
二叉树

二分法形成的树
右子树大于左子树,长于左子树
平衡二叉树:右子树比左子树高度差不超过1


image.png

算法效率 O(logN)

劣势:如果数据有删除,会导致结构错乱,极端情况下形成线性树
算法效率为O(N)

红黑树
  1. 节点是红色或黑色。
  2. 根节点是黑色
  3. 每个叶节点是黑色的。
  4. 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)
  5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。
    这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。


    红黑树
B 树

m阶B树
根节点最少两个子树
每个节点最多m个子节点
除根节点与叶节点外最少ceil(m/2)个节点 ceil()进一法
所有叶节点同一阶


image.png

由于B树遵循上述规则,且动态调整树结构,搜索复杂度为logb(N)

B+树

B树的变形
索引与指针的数量相同
非叶子节点不存储数据,只存储子节点指针与索引
所有叶子节点由链指针指向下一个叶子节点 ,区间取值速度加快


image.png

全盘扫描时可以只扫描叶子节点,B树需要扫描索引节点
单个数据查询,所有数据查询时间几乎相同,相对稳定

https://www.cnblogs.com/guohai-stronger/p/9225057.html

相关文章

  • MySQL B+树介绍

    MySQL B+树介绍 B+树的演变 二叉树 --> 二叉查找树 --> 平衡二叉树 --> B树 --> B+树...

  • 树-二叉搜索树-平衡二叉树-红黑树-B树B+树

    关于树的总结从二叉树->二叉搜索树->平衡二叉树->红黑树->B树与B+树 B+树介绍 B树、B-树、B+树、B*...

  • mysql 浅析

    索引的结构 B+树 二叉查找树、平衡二叉树 、B树、 B+树 B树: B+树: B+树中各个页之间是通过双向链表连...

  • 转:B+树

    B+树 B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由B树和索引顺序访问方法(ISAM,是不是很熟悉...

  • 不可多得的后端架构师技术图谱!内附参考资料!

    数据结构 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B-,B+,B*树 LSM 树 队列 集合...

  • 树结构-1

    1.二叉搜索树、平衡二叉树2.平衡二叉树之红黑树、3.B 树、B+树、B* 树、4.字典树 ( Trie树 ) 二...

  • MySQL innoDB 索引实现原理

    B+树和二叉树、平衡二叉树一样,都是经典的数据结构。B+树由 B 树和索引顺序访问方法演化而来,但是在现实使用过程...

  • B+树学习总结

    B+树:多分支的平衡的查找树(多叉的平衡的搜索树),数据节点都存储在叶节点上。 B+树和二叉树、平衡二叉树一样,都...

  • 后端架构师技术图谱

    数据结构队列集合链表、数组字典、关联数组栈树二叉树完全二叉树平衡二叉树二叉查找树(BST)红黑树B-,B+,B*树...

  • 后端架构师技术图谱(一)

    数据结构队列集合链表、数组字典、关联数组栈树二叉树完全二叉树平衡二叉树二叉查找树(BST)红黑树B-,B+,B*树...

网友评论

    本文标题:树--(二叉树、B树、B+树)

    本文链接:https://www.haomeiwen.com/subject/legvyhtx.html