美文网首页
算法导论B树笔记

算法导论B树笔记

作者: 琦思妙想君 | 来源:发表于2018-10-16 10:29 被阅读12次

    B树是为磁盘或其他辅助存储设计的一种平衡搜索树。

    我理解B树与红黑树等的主要区别是,红黑树假定对树的操作都在内存中,定义两种操作:
    1.关键字与结点的比较
    2.在树中沿树的结构爬升或下降
    红黑树在内存进行这两种操作的时间在同一个数量级内
    而在磁盘等辅助存储设备的状况下,这两种操作的时间相差多个数量级,爬升和下降操作耗时巨大,所以设计了B树来增加操作1,减少操作2
    B树的主要特性就是分支因子很大,树的高度很小,极大的减少了操作2

    B树的定义

    B树的严格定义有很多项,简单的说,B树是一颗分支因子很大的搜索树,可以想象为 n 叉搜索树(相对于二叉搜索树)

    可以证明,严格定义的B树高度会很小,比二叉搜索树小的多

    B树上的基本操作

    基本操作包括搜索、创建、插入

    搜索的过程较简单,是一个从跟结点向下查找的过程,与二叉搜索树类似,只是将与单个关键字的比较换为与多个关键字的比较。从某个结点的比较看,书中给出的方法是顺序查找,如果 t 较大的话,二分查找会更有效率。

    创建操作很简单,只是创建一个空的跟结点。

    插入操作不能简单的插入新的叶结点,在遇到满的结点时要将结点分裂为两个结点,以保证插入新元素后仍然是合法的B树。

    从B树中删除关键字

    从B树中删除关键字非常复杂,复杂到书里都不愿意给出代码,只给了思路和分析。

    B树的删除操作性能也很高,O(h) 次磁盘操作,O(th) 的 CPU 时间,同插入操作一样高效。

    相关文章

      网友评论

          本文标题:算法导论B树笔记

          本文链接:https://www.haomeiwen.com/subject/njiczftx.html