当前位置: 首页 > news >正文

数据结构-第七章(B树和B+树)

注:B树和B+树

考点:大纲对B树和B+树的要求各不同,重点在于考察B树,不仅要求理解B树的基本特点,还要掌握B树的建立、插入和删除操作,而B+树则只考查基本概念。

这一节是留了坑的(时间问题),可以直接看晴落学长的。

个人这个是别人整理好的资料,知识点整理比较好,在二刷题的时候再补上坑。

注:主要把B树的规则在脑海中,可以很清楚的浮现,并且有意识的脑海操作即可。

1.B树

插入过程:以例子为导向(是性价比最高的) ,复习时,直接来一题,检测自己在哪个环节有问题。

2.B+树

 

3.树的小结

 二叉排序树既拥有类似于折半查找的特性,查找效率可以达到O(logn),又采用了链表作为存储结构,插入删除很高效。因此是动态查找表的一种适宜表示。

二叉排序树可能会在一些极端情况下退化成线性表,为了避免树的高度增长太快,我们使用平衡二叉树对其进行限制,防止这种极端情况的出现,保证我们的查找效率都是O(logn)。

平衡二叉树的维护太过困难,插入和删除操作后需要频繁调整全树整体拓扑结构,维护这种高度平衡所付出的代价比获得的效益大的多。因此如果我们需要频繁的插入删除又需要一定的查找效率,我们使用红黑树这一种放宽平衡条件的树形查找结构。

B树是应用于文件系统的一种平衡的多路查找树,B树的查找操作涉及外存的存取,而磁盘IO的时间代价昂贵,因此我们需要降低树的深度选择多路查找树。

B+树是应文件系统所需而出的B树的变种,实际应用于文件索引和数据库索引。B+树单一结点由于不含有关键字对应记录的存储地址,因此可以存储更多的关键字,使得查询的IO次数更少,同时B+树的查找路径从根结点到叶结点,查询效率更加稳定。此外B+树在范围查找上的优势更大,因为叶结点形成有序链表。

相关文章:

  • 每日一道算法题 判断子序列
  • linux 环境报错:Peer reports incompatible or unsupported protocol version
  • sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理
  • 不使用AMap.DistrictSearch,通过poi数据绘制省市县区块
  • 巴西市场有哪些电商平台?巴西最畅销的产品有哪些?
  • 揭秘,PyArmor库让你的Python代码更安全
  • Linux 程序打包
  • 时尚品牌GOODBAI好人好事系列纪录片——Jupiter乐队的热血与梦想
  • ubuntu 18 虚拟机安装(3)安装mysql
  • Hadoop3:参数调优-核心参数NameNode内存配置、并发数配置、回收站配置
  • JAVA学习-练习试用Java实现“天际线问题”
  • Linux Ubuntu 20.04.06 安装Onboard虚拟键盘教程
  • gitignore
  • JAVA学习笔记-JAVA基础语法-DAY20-字节流、字符流
  • 语音模块——LSYT201B模组(超详细)
  • 〔开发系列〕一次关于小程序开发的深度总结
  • Java精华积累:初学者都应该搞懂的问题
  • JSONP原理
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • quasar-framework cnodejs社区
  • 百度小程序遇到的问题
  • 聊聊sentinel的DegradeSlot
  • 如何优雅地使用 Sublime Text
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 它承受着该等级不该有的简单, leetcode 564 寻找最近的回文数
  • 小程序测试方案初探
  • 一文看透浏览器架构
  • 【运维趟坑回忆录 开篇】初入初创, 一脸懵
  • MyCAT水平分库
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​卜东波研究员:高观点下的少儿计算思维
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #Spring-boot高级
  • #微信小程序(布局、渲染层基础知识)
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • (2015)JS ES6 必知的十个 特性
  • (2024,Vision-LSTM,ViL,xLSTM,ViT,ViM,双向扫描)xLSTM 作为通用视觉骨干
  • (31)对象的克隆
  • (a /b)*c的值
  • (Arcgis)Python编程批量将HDF5文件转换为TIFF格式并应用地理转换和投影信息
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (十)【Jmeter】线程(Threads(Users))之jp@gc - Stepping Thread Group (deprecated)
  • (未解决)jmeter报错之“请在微信客户端打开链接”
  • (译)2019年前端性能优化清单 — 下篇
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)创业的注意事项
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • ***通过什么方式***网吧
  • .axf 转化 .bin文件 的方法
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .Net CF下精确的计时器
  • .NET Core Web APi类库如何内嵌运行?
  • .net后端程序发布到nignx上,通过nginx访问
  • .NET建议使用的大小写命名原则