我观察到,根据节点插入的顺序,2-3-4树的高度可能会有所不同。
例如,1,2,3,4,5,6,7,8,9,10将产生高度为2的树
按此顺序插入时:
例如,1,5,10,2,3,8,9,4,7,8将产生高度为1的树
这是2-3-4树的正常属性吗?在这种情况下,按顺序插入节点将产生非常不平衡的树。我认为2-3-4树应该是平衡树?
谢谢。
发布于 2013-05-02 11:54:26
2-3-4树确实是“平衡”树,因为树的高度永远不会超过相对于节点数量的某个固定界限(如果每个节点恰好有两个值,则为O(log ))。这里的术语“平衡”应该与“不平衡”形成对比,“不平衡”是指树的高度相对于节点的数量是“大”的。例如,此树高度不平衡:
1
\
2
\
3
\
4
\
5
\
6我认为您假设术语“平衡”意味着“尽可能紧凑”,但事实并非如此。在2-3-4树中使用多个不同的插入顺序来生成不同高度的树是完全可能的,其中一些树的高度会比其他树低。然而,与树中的总节点数相比,可实现的最大可能高度并不太大,因此2-3-4树确实被认为是平衡树。
希望这能有所帮助!
发布于 2013-05-02 12:55:02
一棵平衡的树通常意味着它的高度是O()。
有效的B-树(包括2-3-4树)有以下限制:
有了这两个限制,证明了一个有效的B-树具有O(logn)个高度。
发布于 2014-09-03 23:54:40
I观察到,根据节点插入的顺序,2-3-4树的高度可以不同。
2-3-4树的插入算法将4个节点“在途中”拆分到叶节点,因为它们不能接受另一个项目。这使得插入可以在一次通过中完成,并且树保持平衡。
https://stackoverflow.com/questions/16328913
复制相似问题