数据结构THU2018 - 高级搜索树

0x01. B树

1.数据

越来越小的内存:系统存储容量的增长速度 << 问题规模的增长速度

事实1: 不同容量的存储器,访问速度差异悬殊。若一次内存访问需要一秒,则一次外存访问需要一天。->使用cache

事实2: 从磁盘中读取1B,几乎与读取1KB一样快->以页(page)或块(block)为单位,使用缓冲区->单位字节的平均访问时间大大缩短。

2.结构

兄弟既翕,和乐且湛。–《诗经·小雅·棠棣》

B树其实就是平衡的多路搜索树的一种等价变换,把搜索树的d代“压扁”,合并成超级节点。每个超级节点有 m = 2 d m=2^d m=2d路,有 m − 1 m-1 m1个关键码。
在这里插入图片描述
既然逻辑上与BBST等价,那么B树的意义何在?
在这里插入图片描述
所谓m阶B树,就是含有小于等于m-1个关键码的树。每个超级节点含有的孩子数取值在 ⌈ m 2 ⌉ \lceil \frac{m}{2} \rceil 2m m m m之间。
在这里插入图片描述

3.查找

在这里插入图片描述

4. 插入

清醒让我,分裂再分裂 --《边界1999》

将关键码插入到正确位置之后,如果上溢(节点个数超过了m-1),需要分裂。注意,上溢可能持续传播,最坏情况持续到根。
在这里插入图片描述

5.删除

删除一个节点,可能发生下溢(节点的分支数< ⌈ m 2 ⌉ \lceil \frac{m}{2} \rceil 2m)。为了解决下溢,有两种方法:旋转合并

旋转
在这里插入图片描述
合并
在这里插入图片描述

举例:
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值