Btree 数据结构

闲来无事,心中对知识的渴望却在无限增长。
stay foolish,stay hunger 是咱们程序员应具有的 “传统美德

什么是BTree

维基百科中

B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结构,它能够存储数据、对其进行排序并允许以O(log n)的时间复杂度运行进行查找、顺序读取、插入和删除的数据结构。
B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。 与自平衡二叉查找树不同,B-树为系统最优化大块数据的读和写操作。
B-tree算法减少定位记录时所经历的中间过程,从而加快存取速度。普遍运用在数据库和文件系统。”

定义

B 树可以看作是对二叉查找树的一种扩展,即他允许每个节点有M-1个子节点。

  • 根节点至少有两个子节点
  • 每个节点有M-1个key,并且升序排列
  • 位于M-1和M key的子节点的值位于M-1 和M key对应的Value之间
  • 其它节点至少有M/2个子节点
    下图是一个M=4 阶的B树:
    在这里插入图片描述

BTree 生成规则

设为M阶BTree,则满足以下条件:
  1. 所有节点有(M-1)个key值,包含1到(M-1)个值。跟节点除外
  2. 每个节点上有(M-1)个key值,且按照升序排列.
  3. 若B节点为的父节点为A,则B节点的值则小于等于A节点中链接的值
  4. 当节点中的key值超过(M-1)个值是,则需要按照满足1/2/3规则重新平衡该节点
平衡规则

将该节点中索引为((M+1)/2)取整的值推举为父亲节点中去,若父亲节点未平衡则继续按照此规则进行平衡,直致平衡

生成BTree 示例

下面是往 [4 阶的B树] 中依次插入
6 10 4 14 5 11 15 3 2 12 1 7 8 8 6 3 6 21 5 15 15 6 32 23 45 65 7 8 6 5 4
在这里插入图片描述

B+Tree

关于B+Tree可查阅此链接文章: https://blog.csdn.net/a764340703/article/details/82621781

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值