数据结构之B树

目录

一、数据结构之B树

 1.1、2-3-4树的定义

 二、B树的特点

三、存储数据

四、优势

五、红黑树和B树对比

5.1、内存性能对比

5.2、磁盘性能对比


一、数据结构之B树

1、B树的数据存储是key-value类型的;

2、B树有几个叉:并不能确定,要看具体实现;

3、M阶B树:每个节点最多有M-1个值,并且以升序排列。

 1.1、2-3-4树的定义

1、2--节点

        包含一个键(及其对应的值)和两条链,左连接指向2-3-4树中都小于该节点,右链接所指向的值都大于该节点。

2、3--节点

        包含两个键(及其对应的值)和三条链,左链接指向2-3-4树 中的键都小于该节点,中链接指向的2-3-4树中的键都位于该节点的两个键之间,右连接指向的2-3-4树 中的键都大于该节点。

3、4--节点

        包含三个键(及其对应的值)和四条链,左链接指向2-3-4树 中的键都小于该节点,左中链接和右中指向的2-3-4树中的键都位于该节点的两个键之间,右连接指向的2-3-4树 中的键都大于该节点。

2-3-4树的特点:所有叶子节点拥有相同的深度。

 二、B树的特点

        B树中允许一个节点包含多个Key,可以是3个、4个、5个甚至是更多,并不确定,需要看具体实现。现在我们选择一个参数M来构建一个B树,我们可以将其称为M阶的B树。那么这棵树会有以下特点:

  • 每个节点最多有M-1个Key,并且以升序排列
  • 每个节点最多能有M个子节点
  • 根节点至少有两个子节点

三、存储数据

        若参数M选择为5,那么每个节点最多包含4个键值对,我们以5阶B树为例,看看B树的数据存储。

①在空树中插入36

 ②插入21,95和40

 ③继续插入50(50的会插入在40和95的中间,那么这个节点将不满足每个节点最多有M-1个Key,所以只能让40(中间键)升序)

 ④继续插入10和18

 

⑤继续插入37(37的会插入在36的后边,那么这个节点将不满足每个节点最多有M-1个Key,所以只能让21(中间键)升序)

 ........按照这样的方式依次往下进行, B树就被构建了出来。

四、优势

        在实际应用中B树的阶数一般比较大(通常大于100),所以,即使存储大量的数据,B树的高度仍然比较小,这样在某些引用场景下,就能体现出它的优势:降低对于树的访问次数,实现树的平衡。

五、红黑树和B树对比

5.1、内存性能对比

1、为什么要有B树?

        性能对比红黑树要高,对比次数相对较少,所以内存优于多叉树,为内存最优二叉树。

        B树磁盘寻址较快,所以B树多用于磁盘,原因是分出多个叉,降低高度,降低寻址的次数和时间。

2、数据如何寻址?

        数据寻址主要发生在磁盘中,其中所消耗的时间是磁头移动的物理时间+平均盘面旋转半圈所消耗的时间。

5.2、磁盘性能对比

B树多用于磁盘,原因是分成多个叉,降低树的高度,降低寻址次数和时间。

红黑树和B树都是在磁盘当中--->数据寻址浪费时间---->磁头移动的物理时问+平均盘面旋转半圈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值