美文网首页
算法导论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树笔记

    B树是为磁盘或其他辅助存储设计的一种平衡搜索树。 我理解B树与红黑树等的主要区别是,红黑树假定对树的操作都在内存中...

  • 《算法导论》-- B树

    1 概述 B树是为磁盘或其它直接存取的辅助存储设备而设计的一种平衡搜索树。B树类似于红黑树,但它在降低磁盘I/O操...

  • B+树是什么?与B树的区别?

    1.算法导论对于B树的定义 1.1 B树定义 1.2 B树高度 1.3 B树的搜索 2.B树和B+树的区别 1)B...

  • 算法导论:字典树

    算法导论:字典树 如果我们给定字符串集合为{b abc abd bcd abcd efg ...

  • B树的删除详解(附伪码)

    本文主要探讨了B树删除的主要步骤及代码,参考自算法导论。 基本概念:(1)度数为t的B树,除了根节点以外的所有节点...

  • HashMap1.8 源码解析(3)--TreeNode(红黑树

    完整代码:代码 前言 在写这篇文章之前,我针对红黑树参考算法导论写了一篇文章图解红黑树-算法导论-java实现基于...

  • 算法导论红黑树笔记

    红黑树是一种比较“平衡”的二叉搜索树,可以保证在最坏情况下基本动态集合操作的时间复杂度为 O(lgn) 红黑树的性...

  • 红黑树原理

    1. 简介   先来看下算法导论对R-B Tree的介绍:  红黑树,一种二叉查找树,但在每个结点上增加一个存储位...

  • B+树的算法定义和算法原理

    作者:Vernon 说明:本文主要以列表形式将B+树的特点以及注意点等列出来,主要参考《算法导论》、维基百科、各大...

  • 算法导论:后缀树

    算法导论:后缀树 参考资料:在线构造后缀树Ukkonen's Algorithm构造后缀树实录后缀树系列在阅读本文...

网友评论

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

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