Algorithm 在顺序为5的B-树中插入完整节点时,哪个项目会上升?为什么?

Algorithm 在顺序为5的B-树中插入完整节点时,哪个项目会上升?为什么?,algorithm,data-structures,b-tree,Algorithm,Data Structures,B Tree,我正在学习设计一棵树。 以下是开发5阶B树的值 1,12,8,2,25,6,14,28,17,7,52,16,48,68,3,26,29,53,55,45,67 当我插入25时,它会分成子节点 8 / \ 1 2 12 25 我可以知道8作为父母的依据是什么吗?为什么没有其他号码?如果btree的顺序是4呢?在顺序为5的B树中,每个节点(根节点除外)中必须有2到4个值 在输入25时,节点的值为1,2,8,12。为了在每个新子节点(1,2)和(

我正在学习设计一棵树。
以下是开发5阶B树的值

1,12,8,2,25,6,14,28,17,7,52,16,48,68,3,26,29,53,55,45,67

当我插入25时,它会分成子节点

         8
      /     \
    1 2    12 25

我可以知道8作为父母的依据是什么吗?为什么没有其他号码?如果btree的顺序是4呢?

在顺序为5的B树中,每个节点(根节点除外)中必须有2到4个值


在输入25时,节点的值为1,2,8,12。为了在每个新子节点(1,2)和(12,25)中至少有2个值,您必须在8处拆分。

在顺序为5的B树中,每个节点(根节点除外)中必须有2到4个值


在输入25时,节点的值为1,2,8,12。为了在每个新子节点(1,2)和(12,25)中至少有2个值,必须在8处拆分。

在插入
25
之前,节点状态如下:

完整节点:
1、2、8、12
。节点中的项目始终按B树排序

插入新项目
25
时,顺序变为:
1、2、8、12、25

在这个序列中,中间的项是升级的项。 节点拆分将数据项等分:一半转到新创建的节点, 一半留在旧的,中间的上升。这就是为什么
8
上升的原因

下图包含顺序为5的B-树,虽然插入的数据不同,但有助于更好地理解这种情况。在右侧的序列中,箭头指示要向上提升的项目


在插入
25
之前,节点状态如下:

完整节点:
1、2、8、12
。节点中的项目始终按B树排序

插入新项目
25
时,顺序变为:
1、2、8、12、25

在这个序列中,中间的项是升级的项。 节点拆分将数据项等分:一半转到新创建的节点, 一半留在旧的,中间的上升。这就是为什么
8
上升的原因

下图包含顺序为5的B-树,虽然插入的数据不同,但有助于更好地理解这种情况。在右侧的序列中,箭头指示要向上提升的项目


您需要什么样的帮助?这是一个关于btrees的一般性问题,还是您认为您编写的代码没有按预期工作?@AndreaCorbellini,这不是关于代码的问题。我想了解索引在后端是如何工作的,这样我就可以在调优sql查询时获得更多好处。您需要什么样的帮助?这是一个关于btrees的一般性问题,还是您认为您编写的代码没有按预期工作?@AndreaCorbellini,这不是关于代码的问题。我试图了解索引在后端是如何工作的,以便我可以在调优sql查询时获得更多好处。为什么还有8,其他数字,如2和12?这是我的问题。我还缺少什么东西来理解如何以及什么点数按照b树的顺序进行分割吗?@roy:因为8是唯一可以保留b树的边balanced@AndreaCorbellini,我可以知道分支节点可以有多少个叶节点吗?每个中间节点比值多1个子节点。所以可能有3到5个孩子。为什么还有8个,其他的数字,比如2和12呢?这是我的问题。我还缺少什么东西来理解如何以及什么点数按照b树的顺序进行分割吗?@roy:因为8是唯一可以保留b树的边balanced@AndreaCorbellini,我可以知道分支节点可以有多少个叶节点吗?每个中间节点比值多1个子节点。所以可能有3到5个孩子。