简单理解B树和B+树

前言

前面我们说了红黑树,他是一种特殊的搜索树,但是由于他只是二叉树,所以这就导致他在大量的数据面前深度过高,同时会造成大量的磁盘空间浪费,所以我们又研究出来了B树和B+树

B树

他是人们早期的一种设计,他打破了二叉树的方式,它可以有多个分支,使得磁盘空间可以重分利用,同时减少了IO操作
定义:

  1. 结点最多有M颗子树,M-1关键字
  2. 除了跟结点和叶子结点处,他的每个结点至少有(M/2)个子节点,向上取整(分裂的时候分开,则至少两颗子树)
  3. 若根结点不是叶子结点,则至少有两颗子树
    一颗标准的B树如下图
    在这里插入图片描述
B-tree的插入方式-分裂

大致可以描述过程是,首先定义一个M阶的树,之后向第一个结点里面插入数据,如果大于就插入到这个树左边,如果小于这个数就插入到这个树右边,当结点满的时候,他会发现分裂,在M/2向上取整地方分裂,然后那个结点上升分出两个结点
具体可以参考https://www.cnblogs.com/vincently/p/4526560.html

B+树

B+树是对B-树的一次升级,它主要针对的是B-树在建立索引的时候,如果出现范围查找,就会导致索引失效,同时每个结点都要带数据,会导致额外的空间浪费,所以引出了B+树
他有以下的特性

  1. 所有的叶子结点都通过双向链表连接在一起
  2. 非叶子结点不存数据
  3. 数据和结点一样多
    在这里插入图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值