B树:除了平衡因子,一切皆空

出现背景

在二叉搜索树和平衡二叉树诞生后,一个问题就一直困扰着后续信徒,几乎每插入一次都要平衡调整一下,操作浪费的时间太多了。为此,红黑树提出了走具有二叉特色的平衡道路,它们打破了原教旨的平衡不得超过1的原则,创建了自己的红黑树教派,但这在B树教派看来无疑是离经叛道,世风日下。B树教派信仰均衡存于万物之间,就连平衡因子相差1都是一种暂时的状态,他们提出的B树策略让搜索二叉树达到了绝对的平衡,与之而来的代价是它们扩展了节点的定义,将原来的二叉节点变成了一个多数字构成的多叉节点。因为它们相信一而再而而三,所以作了这个修正。

 

B树和B+树广泛用于磁盘调度和数据库方面

 

属性

m阶B树,代表一个节点最多的元素只能有m-1个,最少m/2-1向上取整,根节点除外(因为如果只有一个元素的五阶B树,你告诉我怎么保证最小)

 

算法

自适应调整:如果一个节点数量大于阈值,向上分裂一层。如果一个节点小于阈值,向兄弟看看能不能借一个,不能借就合并。

 

B树和B+树的区别

B+树是对B树的改进。B树查找可以查找在树中任意一个节点,但是B+树把所有节点下放在最后一层叶节点上,这样的好处是其他的非叶节点不必占用很多空间,进而可以存放更多的key,扩大节点容量,数据库喜欢用。

 

posted @ 2022-08-14 22:00  srid  阅读(40)  评论(0)    收藏  举报