繁体   English   中英

B+ 1 & 2 的树顺序

[英]B+ Tree order of 1 & 2

我对要在顺序为 1 和顺序为 2 的 B+ 树中插入的最大和最小键数感到困惑。

在我看的视频中,据说一个节点(根除外)中插入的最大键数至少为m ,最多为2m (假设m为顺序)。

根据这两条语句,在 B+ 树中插入的最小和最大键数是多少,顺序为 1,顺序为 2? 我不确定上面的两个陈述是否冲突,或者我误解了一些东西。 任何想法?

在没有参考视频的情况下,看起来他们使用了术语order的非标准定义,这是造成混淆的原因。

树的顺序的标准定义是最大分支因子,即一个节点可能拥有的最大子节点数。 因此,在该定义中,它不是最小值,而是最大值,并且与的数量无关,而是与项的数量有关。

视频的定义意味着最大键数始终为偶数,而实际上并没有这样的要求。 B+ 树的最大分支因子很可能是偶数,从而使最大键数为奇数。

使用术语order的标准定义,我们专门针对 B+ 树具有以下约束:

  • 它的内部节点最多有m个子节点。 这意味着它们最多有m - 1 个键。
  • 它的内部节点至少有m/2 (向上舍入)子节点,根除外:
  • 如果它的根不是叶子,它可能只有 2 个孩子。
  • 它的叶子包含实际的数据值。

下面是一个具有 4 阶(标准定义)的示例 B+ 树,它对应于一个 B+ 树,其中键的数量必须在 1 到 3 之间——这不符合视频的定义:

在此处输入图像描述

如您所见,一个节点在这里最多可以有 4 个孩子,最多可以有 3 个键。 在您的定义中, 2m表示最大键数,顺序实际上是2m+1 因此,您要求使用 order 的标准定义来提供 3 和 5B+ 树的示例。

下面是 3 阶的示例——B+ 树的最低阶——这意味着每个节点中的键数必须是 1 或 2:

在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM