B-Tree 设计与实现总结--《算法导论》

本文基于《算法导论》第三版,深入探讨B-Tree的定义、特性及Java实现。介绍了B-Tree的高度、查找、插入和删除操作,其中插入操作详细阐述了节点分裂的过程,而删除操作则涉及节点的链接操作。全文包含完整的B-Tree代码实现。
摘要由CSDN通过智能技术生成

总结自《introduction to algorithm》第3版,第18章的B-Tree。实现是用的java代码

B-Tree其实是一种多路平衡树,主要是用在对辅存中的数据做增删改查,所以更大的时间消耗其实是在读写辅存。不过为了实现的简便我在实现中并不考虑辅存的读写。

定义

节点 x x 的属性

  1. x . n 关键字的个数

    • 每个关键字缝隙( x.keyix.keyi+1 x . k e y i − x . k e y i + 1 ) 之间有一个孩子节点,即共有 x.n+1 x . n + 1 个孩子(除叶子节点外)
    • x.isleaf 标识是否是叶子
    • 关键字有严格的递增顺序
    • 此外,除了叶子节点外,每个节点的关键字都有一个上界和下界,我们称 t t 为B-Tree 的度,则, t 1 x . n 2 t 1
      接下来我们来证明B-tree 的高度 hlogtn+12 h ≤ l o g t n + 1 2

      节点的实现,我这里是将每个节点底层用两个数组来实现,一个entry,另外一个是childs,且大小固定为

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值