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

平衡二叉查找树

普通平衡二叉查找树

平衡二叉树定义是按照有序排列成树状,左子树数据大于右子树,任意节点的左右子树高度不能大于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.mzph.cn/news/865902.shtml

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

相关文章

Springboot 敏感词过滤

参考&#xff1a;网站是怎么屏蔽脏话的呢&#xff1a;简单学会SpringBoot项目敏感词、违规词过滤方案_springboot 项目关键词过滤-CSDN博客 【敏感词过滤】_wx60d2a462203aa的技术博客_51CTO博客 1、添加依赖 <dependency><groupId>com.github.houbb</group…

筛斗数据:开启数据提取与治理的新篇章

在数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;如何从海量、复杂的数据中准确提取有价值的信息&#xff0c;并有效治理这些数据&#xff0c;使其成为驱动业务决策的重要力量&#xff0c;成为了众多企业面临的共同挑战。在十堰市这片充满活…

Vanchip新一代WiFi产品全新亮相

1‧ 研讨会介绍 随着 Wi-Fi7 时代的到来&#xff0c;高频信号衰减较高&#xff0c;因此需要外挂 FEM 电路以提高发射信号的增益&#xff0c;从而保障远距离通信的效果和范围。WiFi-FEM 逐渐成为智慧手机、路由器等终端产品中的标配芯片。Vanchip 针对客户的迫切需求&#x…

Python网页正文提取神器: readability库详解

Python网页正文提取神器: readability库详解 1. readability简介2. 安装3. 基本使用3.1 提取文章内容3.2 获取元数据 4. 高级功能4.1 自定义选项4.2 处理非标准HTML 5. 实际应用示例5.1 批量提取新闻文章5.2 创建简单的阅读模式 6. 性能优化7. 注意事项和局限性8. 总结 在网络爬…

【高精度实验】PFA具塞试管 四氟塞子 实验室分析专用

PFA具塞试管&#xff0c;以其四氟塞子的卓越密封性能&#xff0c;为实验室的精确度和安全性提供了双重保障。以下是针对PFA具塞试管的营销文案&#xff0c;特别强调其四氟塞子的特性&#xff1a; 【四氟密封&#xff0c;科研无忧】 在追求极致精确的科研世界里&#xff0c;PF…

上海市计算机学会竞赛平台2023年3月月赛丙组循环播放

题目描述 又是一年春暖花开&#xff0c;小爱与家人一起开车出游&#xff0c;在漫长的路途上&#xff0c;他开始播放自己的歌单以舒缓疲劳。 小爱的歌单中有&#x1d45b;n首歌&#xff0c;其中第 &#x1d456;i 首歌的时长为 &#x1d461;&#x1d456;ti​ 分钟&#xff0…

安华金和—可信数据空间助力公共数据授权运营安全有序开展的实践探索

伴随数字化、网络化和智能化的快速发展&#xff0c;数字经济与实体经济深度融合&#xff0c;数据已然成为经济发展赖以依托的基础性、战略性资源&#xff0c;对社会生产、分配、流通、消费和社会服务管理等各环节产生深刻影响。我国高度重视数字经济发展&#xff0c;将数据列入…

Linux安全加固:防火墙规则与SELinux策略

Linux系统的安全加固是一个多层面的过程&#xff0c;其中防火墙规则与SELinux策略是两个至关重要的方面&#xff0c;它们共同为系统提供了网络和本地级别的安全保障。 防火墙规则&#xff08;FirewallD/Iptables&#xff09; Firewalld • 简介&#xff1a;Firewalld是Linux…

理解 React 中的 API 封装、自定义 Hooks、组件、独立模块与 Context

在现代前端开发中&#xff0c;React 提供了多种方法来组织和管理代码。这些方法包括 API 封装、自定义 Hooks、组件、独立模块和 Context。理解它们的区别和联系&#xff0c;可以帮助我们编写更清晰、更模块化的代码。 1. API 封装 目的&#xff1a;处理与后端服务的通信逻辑…

14-21 人工智能的历史以及简单神经网络的工作原理

初始 “我们需要走得更深”这句台词出自电影《盗梦空间》。这是在讨论深入梦境更深层次时说的&#xff0c;暗示需要探索梦境的更深层次。虽然这似乎是不可能的&#xff0c;但它传达的理念是&#xff0c;要创造一个新的世界&#xff0c;就必须冒险进入更深的层次。 电影《盗梦空…

将List切割为多个指定长度的多个List

参考: https://blog.csdn.net/baidu_41480640/article/details/122507018https://blog.csdn.net/H1767410/article/details/138333350https://blog.51cto.com/u_16213352/7632003https://blog.csdn.net/2301_82243396/article/details/137900249 手写1 private List<List&l…

3D问界—MAYA中冻结变化的作用以及应用的场景

问题提出&#xff1a;MAYA中冻结变化的作用以及应用的场景 在Maya中&#xff0c;“冻结变换”&#xff08;Freeze Transformations&#xff09;的作用是重置对象的变换属性&#xff0c;包括平移、旋转和缩放&#xff0c;将它们归零或者设定为特定的值。这通常在以下几个步骤中需…

unity强力配置插件Luban【Next最新版本】(二)本地化

文章目录 前言一、快速实现静态本地化1、表格格式2、本地化文本3、修改bat文件3、打表 二、多语言切换1、修改bat文件2、增加本地化管理脚本3、测试 总结 前言 无需多言&#xff0c;本地化&#xff08;Localization&#xff0c;简称 L10N&#xff09;是指将产品、内容或服务适…

软考的报名详细流程

2024年软考的考试时间已经公布&#xff0c;分别为5月25日至28日和11月9日至12日。准备参加2024年软考的朋友们&#xff0c;一定要提前关注官方发布的考试安排。 本文将详细介绍软考报考的整个流程。准备报考的朋友们&#xff0c;阅读本文就足够啦&#xff01;软考的报考流程大致…

如何系列 如何确保Kafka消息可靠性/防止消息丢失

文章目录 ProducerBrokerConsumer流程 从Kafka架构来看&#xff0c;理论上仍有消息丢失的可能性&#xff0c;但实际发生的概率极低&#xff0c;只有在所有副本的机器都宕机时才会丢失。 当所有代理&#xff08;broker&#xff09;都确认消息时&#xff0c;这并不意味着消息已经…

【CT】LeetCode手撕—1143. 最长公共子序列

目录 题目1- 思路2- 实现⭐1143. 最长公共子序列——题解思路 3- ACM 实现 题目 原题连接&#xff1a;1143. 最长公共子序列 1- 思路 模式识别&#xff1a;最长公共子序列——> 动规五部曲 2- 实现 ⭐1143. 最长公共子序列——题解思路 class Solution {public int longe…

2024上半年网络工程师考试《应用技术》试题一

阅读以下说明&#xff0c;回答问题。 【说明】 MPLS基于(1)进行转发&#xff0c;进行MPLS标签交换和报文转发的网络设备称为(2)&#xff0c;构成MPLS域(MPSDomain)。位于MPLS域边缘、连接其他网络的LSR称为(3),区域内部的LSR称为核心LSR(CoreLSR)IP报文进入MPLS网络时&#xf…

LLM4Decompile——专门用于反编译的大规模语言模型

概述 论文地址&#xff1a;https://arxiv.org/abs/2403.05286 反编译是一种将已编译的机器语言或字节码转换回原始高级编程语言的技术。该技术用于分析软件的内部工作原理&#xff0c;尤其是在没有源代码的情况下&#xff1b;Ghidra 和 IDA Pro 等专用工具已经开发出来&#…

等保2.0 实施方案

一、引言 随着信息技术的广泛应用&#xff0c;网络安全问题日益突出&#xff0c;为确保信息系统安全、稳定、可靠运行&#xff0c;保障国家安全、公共利益和个人信息安全&#xff0c;根据《网络安全法》及《信息安全技术 网络安全等级保护基本要求》&#xff08;等保2.0&#x…

实验七 SQL数据更新和视图

题目 &#xff08;1&#xff09;向商品类别表category中插入一条记录&#xff08;801&#xff0c;‘座椅套’&#xff0c;‘各种品牌的汽车座套’&#xff09; &#xff08;2&#xff09;向商品表product中插入一条记录&#xff1a;商品编号80101&#xff0c;商品名称“四季通…