平衡二叉查找树和多路查找树

news2024/11/18 18:26:10

平衡二叉查找树

普通平衡二叉查找树

平衡二叉树定义是按照有序排列成树状,左子树数据大于右子树,任意节点的左右子树高度不能大于1
image.png
优点:可以保证绝对的平衡
缺点:当进行删除节点和新增节点,树进行自平衡的时候,需要频繁树旋转,性能比较低

红黑树

红黑树也是一种平衡二叉树,但是定义不同,红黑树要求是:每个节点要么是红色节点要么是黑色节点,叶子节点都是黑的,如果节点是红的,那么子节点一定是黑色的,不可以出现连续的红节点,可以出现连续的黑节点,任何子树的黑节点个数需要保证相同
image.png
优点:红黑树是普通红黑树的改进版本,可以看出允许连续黑节点,这样就可以打破任意节点的左右子树高度不能大于1的规则,没有要求绝对的平衡,对于删除和新增,可以一定程度减少树的旋转

应用范围:适用于数据的查找,但是数据量比较大情况依然树的高度会很高(只有二叉),所以一般用于内存操作,不适合IO操作,比如JDK的HashMap就使用了这个结构来提高检索速度

平衡多路查找树

b树

定义一个m阶的树,要求每个节点都只能包含m-1个节点,也意味着每个节点只能有m-1个子节点,同时也要满足平衡树的定义,左右子树高度差不能大于1
image.png

优点: 相对于平衡二叉树,这里变成了多路,可以容纳更多数据,同时树的高度也不会很高,这样查找效率更高
缺点:效率不是很稳定,因为非叶子节点也是存全量数据的,同时进行范围查找也不方便,需要进行中序遍历之类的。还有一点就是建立二级索引也要存全量数据,很不方便,而且非叶子节点存全量数据,会使得单个节点在有限数据字节文件情况下,存的数据比较少,树的高度依然会比较高

b+树

定义一个m阶的树,要求每个节点都只能包含m-1个节点,也意味着每个节点只能有m-1个子节点,同时也要满足平衡树的定义,左右子树高度差不能大于1,但是全量数据只存在叶子节点,非叶子节点只存关键检索数据
image.png
优点:数据只存叶子节点,意味着检索的性能都稳定的;同时非叶子节点也只存关键字数据,这样树的高度相比b树会更低,同时叶子节点和非叶子节点都是有链表相连,范围查询也比较方便;还有可以比较方便建立二级索引,不需要存全量数据,只要存索引和一级索引数据相关联就可以。

应用范围:适合用于大型中间件的存储,树的高度很低,IO操作次数很少。比如mysql数据库就是使用这种结构,方便进行范围查找和二级索引的灵活建立。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1890828.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

10 docker 安装 mysql详解

目录 一、安装mysql 1. 镜像获取 2. 简单版 2.1. 使用mysql镜像 2.2. 建库建表插入数据 2.3. 外部win 连接并插入中文数据测试 2.4. 简单版本问题 3. 创建容器-实战版 3.1. 新建容器实列并挂载卷 3.2. 新建my.cnf , 解决中文乱码 3.3. 重启容器验证 3.4. 总结 一、…

VScode使用ssh连接服务器

VScode是一款有丰富插件的编译器,非常好用!除非你不会用,因为太过繁琐或着频繁出错导致想把电脑砸了; 插件选择 ssh 配置文件 Host myblablaHostName xxx.xx.xxx.xxxUser username用户名一般是服务器上创建有什么用户名&#xf…

开源即正义,3D软件Blender设计指南

在当今数字化时代,开源软件的崛起不仅代表着技术的发展,更象征着一种信息自由和技术民主的理念。其本质是集众人之智,共同去完善一个软件,最终使双方互惠共赢。具体来说,开源的价值,在于打破资源垄断&#…

RealMAN:大规模真实录制且经过注释的麦克风阵列数据集

在深度学习驱动的多通道语音增强和声源定位系统的开发中,由于缺乏大规模的真实录制数据集,这些系统的训练在很大程度上依赖于房间脉冲响应(RIR)和多通道扩散噪声的模拟。然而,模拟数据和真实世界数据之间存在的声学失配…

【数据分享】《中国建筑业统计年鉴》2005-2022 PDF

而今天要免费分享的数据就是2005-2022年间出版的《中国建筑业统计年鉴》并以多格式提供免费下载。(无需分享朋友圈即可获取) 需要2023的数据的请添加小编咨询 数据介绍 在过去的十八个年头中,中国建筑业经历了翻天覆地的变化。从《中国建…

【LeetCode】十二、递归:斐波那契 + 反转链表

文章目录 1、递归2、leetcode509:斐波那契数列3、leetcode206:反转链表4、leetcode344:反转字符串 1、递归 函数自己调用自己 递归的4个点: 递归的例子:给一个数n,在斐波那契数列中,找到n对应的…

企业元宇宙3D云端数字化展厅扩大客户触及面

在浩瀚无垠的元宇宙中,一个立体、虚拟的数字空间正在等待您的探索与创造。如何在这片无边界的数字领域中快速搭建起属于您自己的虚拟展馆,已成为当今企业关注的焦点。 元宇宙数字展馆搭建,不仅是对新技术领域的探索,更是品牌创新与…

Gradle学习-5 发布二进制插件

注:以下示例基于Gradle8.0 1、发布插件 复制一分 buildSrc,执行命令行,生成一个新目录 leon-gradle-plugin cp -rf buildSrc leon-gradle-plugin在 leon-gradle-plugin 目录下的 build.gradle 中引入maven plugins{// 引用 Groovy 插件&…

js替换对象里面的对象名称

data为数组,val为修改前的名称,name为修改后的名称 JSON.parse(JSON.stringify(data).replace(/val/g, name)) ; 1.替换data里面的对象tenantInfoRespVO名称替换成tenantInfoUpdateReqVO 2.替换语句: 代码可复制 let tenantInf…

大模型与机器人精彩碰撞-7月5日晚上八点不见不散!

在瞬息万变的科技时代,新兴人工智能和机器人技术的结合正在引领新一轮的创新浪潮。你是否想成为未来科技的领航者?你是否想了解最前沿的AI与机器人技术?行麦科技重磅推出的“AIGC时代的生存法则”AI系列课,将为你揭开大模型与机器…

RK3568驱动指南|第十六篇 SPI-第188章 mcp2515驱动编写:复位函数

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

基于java+springboot+vue实现的家政服务平台(文末源码+Lw)299

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…

RAID详解

一、RAID存储是什么? RAID 存储(Redundant Arrays of Independent Disks,独立磁盘冗余阵列)是一种通过将多个独 立的物理磁盘组合在一起,以实现更高的存储性能、数据可靠性和容错能力的技术。 其主要目的是解决单个…

Appium启动APP时报错Security exception: Permission Denial

报错内容Security exception: Permission Denial: starting Intent 直接通过am命令尝试也是同样的报错 查阅资料了解到:android:exported | App quality | Android Developers exported属性默认false,所以android:exported"false"修改为t…

MATLAB中findall用法

目录 语法 说明 示例 查找具有可见或隐藏句柄的图窗 查找句柄处于隐藏状态的对象 查找 Text 对象 提示 findall的功能是查找所有图形对象。 语法 h findall(objhandles) h findall(objhandles,prop1,value1,...,propN,valueN) 说明 h findall(objhandles) 返回 ob…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧,不然Selection不好讲,那涉及到了挺多东西的,比元素(Element)和各类Filter,这些都与Document有关,所以先简单讲一下这个。 一、…

牛!手机、TV双端聚合,免费可同步!

哈喽,各位小伙伴们好,我是给大家带来各类黑科技与前沿资讯的小武。 有不少小伙伴闲时会选择观看游戏、户外、娱乐等各类的直播,而关注的主播可能驻留在不同直播平台,需要下载多个APP,且切换非常不方便。 所以今天给大…

程序化交易广告及其应用

什么是程序化交易广告? 程序化交易广告是以实时竞价技术即RTB(real-time bidding)为核心的广告交易方式。说到这里,你可能会有疑问:像百度搜索关键词广告还有百度网盟的广告,不也是CPC实时竞价的吗&#x…

永劫无间国服延迟高、报错、卡顿的处理措施一览

永劫无间国服延迟高、报错、卡顿怎么办?快速解决办法分享 第一个办法:改善延迟 如果是一直遇到永劫无间国服延迟高、报错、卡顿的问题,重启游戏也不管用的话,那应该就是网络问题,玩家可以启动雷神,让其快速…

【CV炼丹师勇闯力扣训练营 Day22:§7 回溯1】

CV炼丹师勇闯力扣训练营 代码随想录算法训练营第22天 回溯法其实就是暴力查找,回溯的本质是穷举,穷举所有可能,然后选出我们想要的答案,一般可以解决如下几种问题: 组合问题:N个数里面按一定规则找出k个数的集合切割…