2018.9.12 B树总结
1. B-Tree
B-树是一种平衡的多路查找树,它在文件系统中很有用。
1.1 B-Tree 特性
- 关键字集合分布在整颗树中;
- 任何一个关键字出现且只出现在一个结点中;
- 搜索有可能在非叶子结点结束;
- 其搜索性能等价于在关键字全集内做一次二分查找;
- 自动层次控制;
1.2 B-Tree搜索原理
B-树的搜索,树中查找结点,结点中查找关键字。
即从根结点开始,对结点内的关键字(有序)序列进行二分查找,如果命中则结束,否则进入查询关键字所属范围的儿子结点;重复,直到所对应的儿子指针为空,或已经是叶子结点;因此,B-Tree的查找过程是一个顺指针查找结点和在结点的关键字中进行查找的交叉进行的过程。
2. B+Tree
B+树是应文件系统所需而产生的一种B-树的变形树。
2.1 B+Tree特性
B+Tree的搜索与B-Tree也基本相同,区别是B+Tree只有达到叶子结点才命中(B-Tree可以在非叶子结点命中),其性能也等价于在关键字全集做一次二分查找;
- 所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;
- 不可能在非叶子结点命中;
- 非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;
- 更适合文件索引系统
2.2 B+Tree与B-Tree区别
- 非叶子结点的子树指针与关键字个数相同;
- 非叶子结点的子树指针P[i],指向关键字值属于[K[i], K[i+1])的子树(B-树是开区间);
- 为所有叶子结点增加一个链指针;
- 所有关键字都在叶子结点出现;
2.3 对B+树进行两种搜索运算
- 循叶结点链顺序搜索
- 另一种是从根结点开始,进行自顶向下,直至叶结点的随机搜索。
3. B*Tree
B*Tree是B+树的变体,在B+Tree的非根和非叶子结点再增加指向兄弟的指针;B*树分配新结点的概率比B+树要低,空间使用率更高,将结点的最低利用率从1/2提高到2/3。
参考:《B-Tree, B+Tree, B*树介绍》:http://blog.sina.com.cn/s/blog_6776884e0100ohvr.html
2018.9.12 B树总结的更多相关文章
- 2018年12月8日广州.NET微软技术俱乐部活动总结
		吕毅写了一篇活动总结,写得很好!原文地址是:https://blog.walterlv.com/post/december-event-microsoft-technology-salon.html ... 
- 2018.5.12 storm数据源kafka堆积
		问题现象: storm代码依赖4个源数据topic,2018.5.12上午8点左右开始收到告警短信,源头的4个topic数据严重堆积. 排查: 1.查看stormUI, storm拓扑结构如下: 看现 ... 
- Artificial Intelligence Computing Conference(2018.09.12)
		时间:2018.09.12地点:北京国际饭店会议中心 
- China Internet Conference(2018.07.12)
		中国互联网大会 时间:2018.07.12地点:北京国家会议中心 
- 20172319  2018.10.12《Java程序设计教程》第6周课堂实践(补写博客)
		20172319 2018.10.12 <Java程序设计教程>第6周课堂测验 课程:<程序设计与数据结构> 班级:1723 学生:唐才铭 学号:20172319 指导老师:王 ... 
- 新手C#SQLServer在程序里实现语句的学习2018.08.12
		从C#中连接到SQL Server数据库,再通过C#编程实现SQL数据库的增删改查. ado.net提供了丰富的数据库操作,这些操作可以分为三个步骤: 第一,使用SqlConnection对象连接数据 ... 
- [2018-11-27]2018年12月1日宁波dotnet社区线下活动
		离上次活动,转眼又过了一个月,幸得各路大神支持,于本周六(12月1日),宁波dotnet社区的线下分享活动又来啦! 活动嘉宾及主题 董斌辉 2015-2019年微软全球最有价值专家(.NET方向) 2 ... 
- 2018.10.12 bzoj4712: 洪水(树链剖分)
		传送门 树链剖分好题. 考虑分开维护重儿子和轻儿子的信息. 令f[i]f[i]f[i]表示iii为根子树的最优值,h[i]h[i]h[i]表示iii重儿子的最优值,g[i]g[i]g[i]表示iii所 ... 
- 2018.10.12 NOIP模拟 数据结构(线段树)
		传送门 sb线段树题居然还卡常. 修改操作直接更新区间最小值和区间标记下传即可. 询问加起来最多5e65e65e6个数. 因此直接询问5e65e65e6次最小值就行了. 代码 
随机推荐
- asp.net IHttpModule浅析
			在asp.net程序中,我们除了使用系统自带的HttpModule模块,还可以自己定义一些自己的HttpModule接口模块.一个asp.net程序可以接收多个HttpModule模块. 众所周知,a ... 
- R语言最优化(一维)
			最优化问题是普遍存在的,以前上运筹学课的时候也接触过最优化相关的问题,当时主要是理论课,并且关注的重点是单纯形法.运输问题以及图论等,这里指的最优化是指函数的最优化,即函数的极值,由于寻找一个局部最优 ... 
- java web后台工作原理
			多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如Se ... 
- [硬件黑客]钉钉智能指纹考勤机M1硬件漏洞挖掘(不定期更新)
			mailto:wangkai0351@gmail.com 钉钉智能指纹考勤机M1s,支持指纹.WIFI.蓝牙.GPS四种考勤方式,并且可实时查看考勤数据,自动生成考勤报表,告别人工核算,数据云端存储不 ... 
- python常见函数以及模块调用
			1.常用函数区别 print: 在python3.0中print是函数,这意味着需要编写print(A )而不是print A str()和repr()的区别 >>>print st ... 
- uploadfy 图片/视频上传
			JS引入 <link href="../../Scripts/uploadify/uploadify.css" rel="stylesheet" /> ... 
- python初学代码留个纪念
			最简单的代码 if else if else 1.python中else if 用 elif表示 2.注释: 单行注释:##### 多行注释:''' ------''',"&q ... 
- jmeter保持登录
			1.添加配置元祖---http cookie 管理器(注意上面的http cookie管理器和其他的配置是对其的) 2.这里是当你想要配置多用户并发是要配置不同的账号,配置后记得上面的第一张图的清除c ... 
- HTML表格布局
			1 浏览器:接受浏览者的操作,然后帮浏览者去web服务器请求网页内容,然后展现成人人眼能够看得懂的可视化页面的软件. 2 IE是浏览器的一种.<ietest工具& ... 
- wpf  binging (六)多绑定
			场景 比如我用四个textbox 需要每个控件都输入正确的数据以后 下方的 button才变成可用状态 需要把四个textbox的值转换成 true或者false 效果 
