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

B 树和 B+树 的区别

文章目录

      • B 树和 B+树 的区别

B 树和 B+树 的区别

了解二叉树、AVL 树、B 树的概念

B 树和 B+树的应用场景

B 树是一种多路平衡查找树,为了更形象的理解。

二叉树,每个节点支持两个分支的树结构,相比于单向链表,多了一个分支。

二叉查找树,在二叉树的基础上增加了一个规则,左子树的所有节点的值都小于它的根节点,右子树的所有子节点都大于它的根节点。

在这里插入图片描述

二叉查找树会出现斜树问题,导致时间复杂度增加,因此又引入了一种平衡二叉树,它具有二叉查找树的所有特点,同时增加了一个规则:”它的左右两个子树的高度差的绝对值不超过 1“。平衡二叉树会采用左旋、右旋的方式来实现平衡。,而 B 树是一种多路平衡查找树,它满足平衡二叉树的规则,但是它可以有多个子树,子树的数量取决于关键字的数量,比如这个图中根节点有两个关键字 3 和 5,那么它能够拥有的子路数量=关键字数+1。

在这里插入图片描述

因此从这个特征来看,在存储同样数据量的情况下,平衡二叉树的高度要大于 B树。

在这里插入图片描述

B+树,其实是在 B 树的基础上做的增强,最大的区别有两个:

B 树的数据存储在每个节点上,而 B+树中的数据是存储在叶子节点,并且通过链表的方式把叶子节点中的数据进行连接。

B+树的子路数量等于关键字数

这个是 B 树的存储结构,从 B 树上可以看到每个节点会存储数据。

在这里插入图片描述

这个是 B+树,B+树的所有数据是存储在叶子节点,并且叶子节点的数据是用双向链表关联的。

在这里插入图片描述

B 树和 B+树,一般都是应用在文件系统和数据库系统中,用来减少磁盘 IO 带来的性能损耗。


http://www.kler.cn/a/146744.html

相关文章:

  • vim基本命令(vi、工作模式、普通模式、插入模式、可视模式、命令行模式、复制、粘贴、插入、删除、查找、替换)
  • 智能物流升级利器——SAIL-RK3576核心板AI边缘计算网关设计方案(一)
  • 网络基础知识指南|1-20个
  • MySQL:索引
  • 快速排序介绍
  • VSCode 插件
  • MidJourney笔记(4)-settings
  • C#,《小白学程序》第八课:列表(List)其二,编制《高铁列车时刻表》与时间DateTime
  • 基于单片机病房呼叫程序和仿真
  • innovus如何在floorplan view显示所有module
  • 每日一题:LeetCode-202.快乐数(一点都不快乐)
  • 经典的回溯算法题leetcode组合问题整理及思路代码详解
  • GPT实战系列-GPT训练的Pretraining,SFT,Reward Modeling,RLHF
  • 【斗破年番】萧炎斩杀蝎山,活捉魂殿铁护法,救小医仙身中魔斑毒
  • apple macbook M系列芯片安装 openJDK17
  • github访问失败
  • Unsupervised MVS论文笔记(2019年)
  • Postgresql WAL日志解析挖掘(walminer 4.0)
  • Java LeetCode篇-深入了解关于数组的经典解法
  • 【nlp】4.1 fasttext工具介绍(文本分类、训练词向量、词向量迁移)
  • 为啥网络安全那么缺人,但很多人却找不到工作?
  • 2、用命令行编译Qt程序生成可执行文件exe
  • 为什么选择美国VPS服务器
  • Spring Security 6.1.x 系列(5)—— Servlet 认证体系结构介绍
  • 【新手解答2】深入探索 C 语言:一些常见概念的解析
  • Mysql 锁机制分析