赞
踩
2-3-4 树 是一棵4阶的B树。
大体上同B树一样,2-3-4 树是可以用做字典的一种自平衡数据结构。
它可以在O(logn)时间内查找、插入和删除,这里的n是树中元素的数目。
2-3-4树和红黑树是完全等价的,且性能上并不比红黑树好,由于绝大多数编程语言直接实现2-3-4树会非常繁琐,所以一般是通过实现红黑树来实现替代2-3-4树,而红黑树本也同样保证在O(lgn)的时间内完成查找、插入和删除操作。
2-3-4树示例如下:
2-3-4树的操作请参见:234树到红黑树,本文的演示图是基于此文的图片整合而来。
2-3-4树的删除比较复杂,示例如下:
2-3-4树与红黑树是多叉树与二叉树的关系,2-3-4树和红黑树是完全等价的!
看上去完全不同,但是在某种意义上它们又是完全相同的
一个可以通过应用一些简单的规则变成另一个,而且使他们保持平衡的操作也是一样,数学上称他们为同构。
应用如下三条规则可以将2-3-4树转化为红黑树:
转化为需要进行树的平衡操作。
图解如下:
红黑树的层数大约是log2(N+1),而2-3-4树每个节点可以最多有4个数据项,如果节点都是满的,那么高度为log4N。因此在所有节点都满的情况下,2-3-4树的高度大致是红黑树的一半。
实际情况是节点不可能都是满的,所以2-3-4树的高度是:log2(N+1) ~ log2(N+1)/2。减少2-3-4树的高度可以使它的查找时间比红黑树的短一些。
但是每个节点要要比较的元素变多,这会增加查找时间。因为节点中用线性搜索来查找比较数据项,使得查找时间的倍数和M成正比,即每个节点数据项的平均数量,总的查找时间和M*log4N成正比。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。