高级算法设计与分析 学习笔记7 数据结构扩充

news2024/9/28 12:30:28

OS tree 数据统计树

本体是红黑树,除了自己的数字外还要记录自己这颗子树有几个节点。

这种特性可以让使用者迅速找到自己要找的第i个数。

往左走,给的那个数字就是排名,但是往右边走的话,那就的先加上当前的排名(也就是r)才是真实的排名。事实上,往右边走,可以理解为把左边(包括父节点)完全抛弃了。右子树的标记数字不用变,也可以用老办法(左子树+1)求出在新树中的排名,只是我们要找的数排名下降了而已。

现在我们知道怎么查找第i个元素了。现在假如随便给我们一个节点,怎么算这个节点是第几名?

把想要求的节点输入就行。-->p就是去父节点。开局的操作相当于求自己在自己这个子树当中的排名,然后就要往上看。如果自己是父节点的右孩子,那就加上父节点左孩子的值加上1(左兄弟和父节点都比自己小,所以排名上升了),然后继续向上看。如果自己只是左子树,那就梁木了,父节点和右兄弟都比自己大,没得比,直接去看再上一级吧。总之自己的排名都是左边的兄弟父老(还有开局的孩子)提供的。

那么,当树中出现了插入,删除等操作的时候,size域要怎么维护呢?:

就改几个节点,下面的不用动。

区间树

max是当前子树的最大值。树中的块是按照左值来排的。

如何查找一个区间树?(找到某个区间在哪个块里,只要能找到一个就行(可能会有多个的,但我们不考虑)):

看一下当前的最大值,有重合那就是当前块,不是那就看最大值。

先看左边,只要最大值比要找的区间的最小值大,那就直接去左边。不然那就完全没交集了,只能去右边。

为啥不优先检查右边?右边的最大值肯定比要找的区间大,而且完全不能保证就一定有重叠的块区间。

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

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

相关文章

宠物空气净化器希喂和352哪个好用?两大爆火机型哪款吸毛、除臭效果比较好?

猫毛、狗毛、鹦鹉毛,总之只要家里养着有带毛的宠物,毛就会出现在各种地方,床上、沙发上、衣服上、水杯里...根本躲不开。而且,除了肉眼可见的,呼吸时、说话时,不经意间还会吃到毛毛。这些毛毛飘在空气里时&…

数据结构-3.4.队列的基本概念

一.队列的定义: 1.图解: 2.重要术语: 空队列:队列中不含任何元素。 二.队列的基本操作: 三.总结:

气膜仓库:高效便捷的物流解决方案—轻空间

在现代物流行业中,效率与灵活性是关键。气膜仓库作为一种创新的仓储方式,凭借其独特的优势,正迅速成为物流企业的理想选择。 轻量化与快速搭建 气膜仓库的最大特点在于其轻量化结构。这种仓库由特制的气膜材料构成,能够在较短的时…

微服务JSR303解析部署使用全流程

目录 1、什么是JSR303校验 2、小试牛刀 【2.1】添加依赖 【2.2】添加application.yml配置文件修改端口 【2.3】创建实体类User 【2.4】创建控制器 【2.5】创建启动类 【注意】不必创建前端页面 3、规范返回值格式: 3.1添加ResultCode工具类 3.2添加Resul…

排序(插入,希尔,堆排,冒泡)

常见的排序算法: 插入排序: 直接插入排序:是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个…

24 Vue3之集成TailwindCSS

Tailwind CSS Tailwind CSS是一个由js编写的CSS 框架 他是基于postCss 去解析的 官网地址Tailwind CSS 中文文档 - Tailwind CSS - 只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。 | TailwindCSS中文文档 | TailwindCSS中文网 对于PostCSS…

SigLIP技术小结

paperhttps://arxiv.org/abs/2303.15343githubhttps://github.com/google-research/big_vision个人博客位置http://myhz0606.com/article/siglip 1 背景 CLIP[1]自提出以来在zero-shot分类、跨模态搜索、多模态对齐等多个领域得到广泛应用。得益于其令人惊叹的能力&#xff0…

普通人如何搭乘 AI 快车,开辟 10 大赚钱新赛道

亲爱的朋友们,准备好了吗?让我们一同踏上这趟激动人心的AI淘金之旅! 俗话说得好,“机不可失,时不再来”。如今,AI这列高速列车正呼啸而过,而我们每个人,都有机会成为车上的幸运儿。…

你们猜!吊打Oracle的国产数据库有哪几家?

今天闲暇之余看到某vx群聊得很火热,这个群聚集了国内不少数据库大咖,其中大家聊到国产数据库遥遥领先了。 最开始主要是一个朋友提到目前很多企业拍板的人并不懂数据库,甚至很多知名数据库都没听过。 然后大家就开始聊到国产数据库了&#xf…

yolov5源码分析001

文章目录 1.研究背景2.源码位置3.源码 1.研究背景 最近项目需要将前人做的YOLOv5改造项目继续改造,于是研究其代码,一步步剖析,一步步看一个个代码意义,旨在为后期攻克YOLOv10等系列做好准备. 2.源码位置 3.源码 # 下载指定文件,并保存在指定目录文件夹中,最后返回文件完整路…

大模型Agent开发框架对比:LangGraph/LlamaIndex/DIY

LLM代理(智能体)正处于一个发展阶段。随着多个新框架的出现和该领域的新投资,现代人工智能代理正在克服不稳定的起源,迅速取代 RAG 成为实施重点。那么,2024 年最终会成为自主人工智能系统接管我们写电子邮件、预订航班…

大模型辅助需求代码开发:如何提升核心编码任务生成效果

大模型在解释代码、回答代码问题、写单元测试等方面表现不错,但这些还只是辅助任务,真实项目需求开发中的设计及实现任务才是核心任务,而这方面尚未有成熟的方法和好的效果。一些 AI Developer 工具能够演示从零创建小应用的能力,…

三节课发布首张AIGC学习地图,全员学习AI真的必要吗?

上周,企培行业非常热闹,第20届中国企业培训与发展年会于成都正式举行。 据观察,本次企培年会有几个特点: ❶ 降本增效与AI赋能成为参会者最关注主题; ❷ 主办方取消了之前多年的学习平台专场,增加2个AI场…

谷歌收录查询工具,使用谷歌收录查询工具查询网站收录情况并优化内容的详细步骤

在数字营销和SEO领域,了解网站在谷歌搜索引擎中的收录情况至关重要。使用谷歌收录查询工具,可以有效地监测网站的索引状态,进而优化内容以提升网站排名和曝光度。以下是如何使用谷歌收录查询工具查询网站收录情况并优化内容的详细步骤&#x…

Defining Smart Contract Defects on Ethereum论文解读

背景 这一部分介绍了智能合约的概念和基础知识,以及 Solidity 编程语言。 智能合约:定义了智能合约作为一种运行在区块链上的程序,它能够在无需第三方干预的情况下自动执行合同条款。智能合约的不可变性:强调了智能合约一旦部署…

element-plus中日历组件设置起始为周一

问题描述 element-plus中的日历组件默认是周日到周六,因业务需求,需要实现从周一到周日的顺序。 解决方式 引入dayjs及本地语言包,使用本地时区即可。 import dayjs from dayjs import dayjs/locale/zh-cn ... // 这一句是为了让日历使用本地…

Invalid Teleport target on mount: null (object)

Failed to locate Teleport target with selector “.demon”. Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree main.…

银河麒麟V10下如何将TXT文件转为PDF?

银河麒麟V10下如何将TXT文件转为PDF? 1. 安装软件2. TXT转PS3. PS转PDF 💖The Begin💖点点关注,收藏不迷路💖 在银河麒麟高级服务器操作系统V10中,将TXT文件转换为PDF文件可以通过简单的几步完成。 1. 安装…

Linux oracle数据库静默安装

系统:Centos7 一、安装准备 1.1 更换依赖源 yum源进行切换(这里采用的阿里云的yum源)(切换之前建议先备份 /etc/yum.repos.d 中的文件) wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/rep…

网络工程师指南:防火墙配置与管理命令大全,零基础入门到精通,收藏这一篇就够了

本指南详细介绍了防火墙的配置与管理命令,涵盖了防火墙的工作原理、常见配置命令、安全策略与访问控制、日志管理与故障排查,并通过实战案例展示了如何有效防御网络攻击。通过学习本指南,网络工程师能够系统掌握防火墙的配置与管理技能&#…