当前课程知识点:数据结构(下) > 第八章 高级搜索树(下) > (b5)B-树: 删除 > 08B5-5 道法自然
在告别本节之前 不妨重新打开这幅我们业已非常熟悉的图
你应该还记得 我们在本节开篇所提过的那样一个问题
B树为什么会被设计成为这样一种相对比较矮
却又比较宽的形状呢?
现在你应该可以做一总结 并且有所领悟
我们知道 所谓对B树的访问
无非是由一系列的外存操作和内存操作交替的组成
有多少次外存操作 就有多少次内存操作
因此 为了保证整个访问的高效率
一个基本的原则就是应该使外存操作的代价与内存操作的代价大致相当
实际上 B树能够做到这一点
而此前AVL之类的BBST却不能做到这一点
你应该还记得 中学物理所学过的折射现象
在两种介质的分界面处 光线的传播方向可能发生偏折
你也应该记得物理学就此所给出的一个形象的解释
也就是所谓的最小光程度原理
因为在这样两种介质并存的情况下
唯有如此 才能够使得光线所传送的实际距离变得最短
或者反过来讲 传播的最快
从这一点讲 大自然是最聪明的设计者
而B树的设计原理 也在于此
其设计过程 某种意义上讲 是在模仿自然的这种最优性
也就是我们所说的 道法自然
其实在这个图中 B树大致有两个方向
首先是水平方向 它对应的是在每个节点的内部所做的搜索
这种搜索因为是在内存中进行的
所以速度相对而言 非常之快
同时 我们还有垂直这个方向
也就是说 沿着垂直方向 它所对应的是磁盘操作
也就是说 在树中每下降一层 我们都要付出一次IO操作的代价
我们知道这种时间代价 相对于内存操作来说
至少要高出5个数量级
这样一种情况 完全可以类比于光线穿越两种物质之间的分界面
既然光线在这种情况下会聪明地通过改变方向 达到速度上的最优
那么B树通过适当的调整自己的形态来适应这种现实
也就再自然不过的了
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试