【数据结构】平衡树引入

数据结构-平衡树


前置知识
  • 二叉树
  • 二叉树的中序遍历

问题

维护一个数据结构,支持插入元素、删除元素、查询元素的排名、查询排名对应的元素、查询元素的前驱、查询元素的后继等。

BST(二叉搜索树)

作为一个基本无效(很容易卡掉)的数据结构,将其放在这里讲可能更为合适。。。
BST 的思想,来自于二叉树的 DFS 序。
设想一下,若一个二叉树的中序遍历正好递增,也就是说,始终有 左儿子 ≤ 根 ≤ 右儿子 左儿子\le根\le右儿子 左儿子右儿子,那么不就可以达到 O ( 树高 ) O(\text{树高}) O(树高) 的复杂度了吗?
可能不是这样。设想一组数据,令插入的第 i i i 个节点为 i i i,BST 便会退化为 O ( n 2 ) O(n^2) O(n2),长这样:

思路

为了弥补 BST 的各种劣势,聪明的 OIers 发明了平衡树。
对于上面卡掉 BST 的样例,平衡树的一种画法长这样:

可以看出来,平衡树是非常平衡的。
平衡树的重要处理就是维护其平衡性。
接下来介绍一下用来维护平衡树的平衡性质的两种操作——左旋( Zag \text{Zag} Zag)和右旋( Zig \text{Zig} Zig

  • Zag \text{Zag} Zag
    如果有一个失衡子树长这样:

    需要将节点 q \text q q 旋转至节点 p \text p p,我们可以这样:

    注意到,其中序遍历是不变的。
  • Zig \text{Zig} Zig
    如果有一个失衡子树长这样:

    需要将节点 q \text q q 旋转至节点 p \text p p,我们可以这样:

    注意到,其中序遍历是不变的。

由于不同的平衡树对失衡子树的处理方式是不同的,所以这里不再赘述,可以去下方的文章学习。


数据结构参数
  • 单次修改时间复杂度: Θ ( log ⁡ n ) \Theta(\log n) Θ(logn)
  • 单次查询时间复杂度: Θ ( log ⁡ n ) \Theta(\log n) Θ(logn)
  • 空间复杂度: Θ ( n ) \Theta(n) Θ(n)

接下来是三种基本的平衡树:

  • AVL
  • Treap
  • Splay

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【IC验证】perl脚本——分析前/后仿用例回归情况

目录 1 脚本名称 2 脚本使用说明 3 nocare_list文件示例 4 脚本执行方法 5 postsim_result.log文件示例 6 脚本代码 1 脚本名称 post_analysis 2 脚本使用说明 help:打印脚本说明信息 命令:post_analysis help 前/后仿结束后,首先填…

VoxPoser:使用语言模型进行机器人操作的可组合 3D 值图

语言是一种压缩媒介,人们通过它来提炼和传达他们对世界的知识和经验。大型语言模型(LLMs)已成为一种有前景的方法,通过将世界投影到语言空间中来捕捉这种抽象。虽然这些模型被认为在文本形式中内化了可概括的知识,但如…

C++STL详解+代码分析+典例讲解

vector 的介绍: 1、vector是表示可变大小数组的序列容器。 2、vector就像数组一样,也采用的连续空间来存储元素,这也意味着可以采用下标对vector的元素进行访问。 3、vector与普通数组不同的是,vector的大小是可以动态改变的。 4、…

基于K-means与CNN的遥感影像分类方法

基于K-means与CNN的遥感影像分类 一、引言 1.研究背景 航天遥感技术是一种通过卫星对地观测获取遥感图像信息数据的技术,这些图像数据在各领域都发挥着不可或缺的作用。遥感图像分类主要是根据地面物体电磁波辐射在遥感图像上的特征,判断识别地面物体的属…

10 大 Mac 数据恢复软件深度评测

对于任何依赖计算机获取重要文件(无论是个人照片还是重要商业文档)的人来说,数据丢失可能是一场噩梦。值得庆幸的是,有多种专门为 Mac 用户提供的数据恢复工具,可以帮助检索丢失或意外删除的文件。在本文中&#xff0c…

基于Python+Selenium+Unittest+PO设计模式

一、什么是PO设计模式(Page Object Model) 1、Page Object是一种设计模式,它主要体现在对界面交互细节的封装上,使测试用例更专注于业务的操作,从而提高测试用例的可维护性。 2、一般PO设计模式有三层 第一层&#x…

【基于NLP的微博情感分析:从数据爬取到情感洞察】

基于NLP的微博情感分析:从数据爬取到情感洞察 背景数据集技术选型功能实现创新点 今天我将分享一个基于NLP的微博情感分析项目,通过Python技术、NLP模型和Flask框架,对微博数据进行清洗、分词、可视化,并利用NLP和贝叶斯进行情感分…

基于Lucene的全文检索系统的实现与应用

文章目录 一、概念二、引入案例1、数据库搜索2、数据分类3、非结构化数据查询方法1) 顺序扫描法(Serial Scanning)2)全文检索(Full-text Search) 4、如何实现全文检索 三、Lucene实现全文检索的流程1、索引和搜索流程图2、创建索引1)获取原始…

Moco框架的搭建使用

一、前言   之前一直听mock,也大致了解mock的作用,但没有具体去了解过如何用工具或框架实现mock,以及也没有考虑过落实mock,因为在实际的工作中,很少会考虑用mock。最近在学java,刚好了解到moco框架是用于…

语言模型GPT与HuggingFace应用

受到计算机视觉领域采用ImageNet对模型进行一次预训练,使得模型可以通过海量图像充分学习如何提取特征,然后再根据任务目标进行模型微调的范式影响,自然语言处理领域基于预训练语言模型的方法也逐渐成为主流。以ELMo为代表的动态词向量模型开…

创建dockerSwarm nfs挂载

创建dockerSwarm nfs挂载 nfs高可用部署(lsyncd两主机双向同步) nfs高可用部署(lsyncd三主机三向同步) 1. 通过 Volume 1.1 创建 Docker Volume 每个 swarm 节点均创建相同名称的 Docker Volume(名称为 nfs120) docker volume create --driver local …

Jupyter notebook修改背景主题

打开Anaconda Prompt,输入以下内容 1. pip install --upgrade jupyterthemes 下载对应背景主题包 出现Successfully installed jupyterthemes-0.20.0 lesscpy-0.15.1时,说明已经下载安装完成 2. jt -l 查看背景主题列表 3. jt -t 主题名称(…

【docker 】centOS 安装docker

官网 docker官网 github源码 卸载旧版本 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine 安装软件包 yum install -y yum-utils \device-mapper-persistent-data…

Spring IOC—基于XML配置Bean的更多内容和细节(通俗易懂)

目录 一、前言 二、Bean配置信息重用 1.简介 : 2.实例 : 三、关于Bean的创建顺序 1.简介 : 2.实例 : 四、关于Bean的单例和多例 1.简介 : 2.实例 : 五、关于Bean的生命周期 1.简介 : 2.实例 : 六、Bean配置后置处理器 1.简介 : 2.实例 : 七、通过.properties文…

AcWing 93. 递归实现组合型枚举

Every day a AcWing 题目来源:93. 递归实现组合型枚举 解法1:回溯算法 标准的回溯算法模板题。 如果把 n、m 和数组 nums 都设置成全局变量的话,backtracking 回溯函数可以只用一个参数 level。 注意传参时 nums 不能用引用,…

Hive SQL间隔连续问题

问题引入 下面是某游戏公司记录的用户每日登录数据, 计算每个用户最大的连续登录天数,定义连续登录时可以间隔一天。举例:如果一个用户在 1,3,5,6,9 登录了游戏,则视为连续 6 天登录。 id dt1001 2021-12-121002 2021-12-12…

SQL语句---删除索引

介绍 使用sql语句删除索引。由于索引会占用一定的磁盘空间,因此,为了避免影响数据库性能,应该及时删除不再使用的索引。 命令 drop index 索引名 on 表名;例子 删除a表中的singleidx索引: drop index singleidx on a;下面是执…

GoldWave注册机 最新中文汉化破解版-安装使用教程

GoldWave是一个功能强大的数字音乐编辑器,是一个集声音编辑、播放、录制和转换的音频工具。它还可以对音频内容进行转换格式等处理。它体积小巧,功能却无比强大,支持许多格式的音频文件,包括WAV、OGG、VOC、 IFF、AIFF、 AIFC、AU…

FPGA 低延时 TCP UDP IP协议栈兼容1G 10G 25G MAC

在计算和数据中心、军事和航天、政府、仪器与测量、金融服务和广播和视频等行业,需要高可靠性的硬件和软件产品,帮助客户更快地开发部署新一代产品,减少技术和市场风险,我司研发的低延迟TCP/IP的IP核的传输速率高于传统网口&#…

汽车4S店中的“S”指的什么?柯桥生活英语学习

很多人买车都会去4S店选购 因为比较有保障 服务又很到位 可你有没有想过 这里的“4S”是什么意思 其实,这几个单词大家都认识 今天我们就来聊一下 与“4S店”相关的英文表达 01 “4S店”的英语表达 其实,4S店的全称是:汽车销售服务4S店…