红黑二叉树是内存中最优的平衡二叉树,它的时间复杂度趋近于O(logn),但是因为每个节点只能存储一个元素和只有两个孩子节点,存储大量数据时就会造成深度特别大,那么查找时多次的访问就会造成效率变低,尤其是在磁盘中查找数据时。同时在对平衡二叉树进行插入时,可能会造成平衡二叉树的破坏。为了解决这种问题,用多叉树的数据结构来解决这种问题。
多叉树的分叉多了,查找次数减少了,但是判断次数会增多,所以时间复杂度和红黑树是差别不大的,但是对磁盘很友好,磁盘查找效率低,所以可以用多叉树来解决查找次数多的因素造成的效率低。
一、2-3-4树
特点:它们所有的叶子节点都拥有相同的深度。
2-节点:有1个节点,1个节点两个分叉,也就是二叉树类似
3-节点:有两个节点,3个分叉
4-节点:有3个节点,4个分叉
也就是多叉树中有几个节点就有几个分叉,它们都是由底层向上构建的。
如下图所示:
二、B树
b树特点:b树中允许一个节点包含多个key,也就是上面所说的2-3-4树类型的树,但是它包含的节点数可以更多,所以我们可以称它为M阶B树。特点:
1)每个节点最多M减一个节点,可以升序排列
2)每个节点最多有M个子节点
3)根节点至少有两个子节点
4)每个由key-value组成
4阶b数如下图:
我们可以看到他们的叶子节点在同一层,和我们所说的2-3-4树是一样的但是b树可以有更多的节点。
B树经常用于解决磁盘的读写慢的问题导致的查找速度效率降低的问题,它减少的读写次数,增加了判断次数。