B-树系列
2020-04-17 09:47
246 查看
B-树家族:
1.多叉的平衡搜索树(允许一个结点有多个孩子)
习惯上可以把 B- 树 称为 M- 树,M的意思是结点中最多有多少个孩子
2.特性
K(甲) < Ka < K(乙) < Kb < K(丙)
3.查找思路:
小于k,在k之前的子树中找
等于k,找到了
大于k,比较下一个k,如果没有后续k了,就在最后一个子树中查找
4.插入过程
首先所有的插入操作,必须都是在叶子结点上
B- 树的修复:分裂修复
分裂:把 key 个数超出的结点分裂成两个结点
左边结点:[0,mid) 右边结点:(mid,length)
中间的 key 保存在父节点中,随着分裂,可能引起父节点也破坏规则,进而导致父节点继续分裂
注意:
(1)B-树的生长是朝上生长的,随着分裂长出的结点,只有根节点才会新建结点
(2)B-树能保证所有的叶子都在同一层(从根到所以路径的长度是一样长)
5.二叉平衡搜索树和多叉平衡搜索树的区别
在 key 的数量一定的情况下,多叉树的高度一定是小于二叉树的
6.B-树的适用场景
数据保存在硬盘中(包含其他低速IO设备)时,所用的平衡搜索树。
MySQL中为什么用 B- 树做索引,而不用红黑树,因为MySQL的数据存储在硬盘中
相关文章推荐
- [企业信息化大家学系列]ERP基础知识问答之ERP实施
- ASP.NET AJAX入门系列(5):使用UpdatePanel控件(二)
- [SilkyBible] XviD系列-16
- 应用密码学Safer K系列加密学习笔记
- ASP.NET Web 应用开发实战快速上手系列 2——C#基础
- WCF 第十三章 可编程站点 系列文章
- MVC3+EF4.1学习系列(十一)----EF4.1常见的问题解决
- java线程系列---condition例子
- Android UI设计系列之HTML标签实现TextView设置中文字体加粗效果(6)
- JAVA NIO系列(二) Channel解读
- 剖析Elasticsearch集群系列第二篇 分布式的三个C、translog和Lucene段
- Html5 Canvas 系列_绘图三(H5 绘制圆弧)
- Part05 - (图文)NSX系列之检查NSX Controller状态
- JDK源码系列(2)----HashMap源码分析
- 三菱Q系列PLC基本指令讲解
- TensorFlow系列教程(4)---手写字体识别
- Recurrent Neural Network系列2--利用Python,Theano实现RNN
- 人脸识别系列(十七):ArcFace/Insight Face
- 小白建站系列之Linux云服务器配置PHP环境教程篇
- CNN经典网络:ResNet系列