目录
下一篇:散列表(Hash Table)
一、定义
B+树示例
思想很想分块查找
符合以下条件:
其中记录代表的是该结点对应存储的各种数据记录如学生信息(所以叶结点包含所有的关键字,也是n个关键字对应n个分支),除了叶子结点,其他结点都是起到一个索引作用
为什么当根结点不是叶子时必须有两颗子树
查找成功的例子:
查找失败的例子
无论查找成功或失败,最终一定要走到最下面一层结点
二、B与B+对比
B+树在磁盘读取以及索引上比B树的优势
B+树和B树都可以将硬盘中记录较高层结点磁盘块读入用来索引找到我们想要查找的信息所在的磁块
例如找47
B+树
对于B树也是如此
他们的区别在哪?
由于从磁盘读入内存是很耗费时间的,所以不难看出树的高度越低越好,且每个磁块的大小是固定的例如1kb
B+树虽然要找到叶结点才能找到我们要的信息,但是前面的索引耗费的空间是非常少的可以索引更多的叶子磁块,使树高变矮。
对于B树每个结点都是实打实存了记录的所以可以索引的结少,会使树高变低,频繁读入磁盘进内存,且查找速度不稳定(有的第一二层就找到了,有的要找到终端层)。
这点应用在很多方面例如:mysql的索引实现以及操作系统的文件系统