news 2026/5/1 10:19:03

数据结构—优先级队列(堆)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数据结构—优先级队列(堆)

一.优先级队列的存储

优先级队列存储在一堆数组中,分为大堆和小堆,把二叉树按层序遍历得出的结果存储到优先级队列

二.堆的分类

堆是一颗完全二叉树,堆分为大根堆和小根堆,大根堆根结点比左右孩子结点都大,小根堆相反

三.性质

设i是数组下标

1.i = 0,是根结点

2.结点的双亲结点是(i - 1 )/ 2

3.(2 * i + 1)是左孩子结点,(2 * i + 2)是右孩子结点

四.代码实现

1.创建

此时默认建立的是小根堆,那么我们如何建立大根堆呢

我们需要重写比较器

但是这种方法不方便更改,那么我们可以用下面的方法

我们可以构建一个比较器生成大根堆

它的好处是如果需要生成小根堆,我们可以重新构建一个比较器将里面的参数换成这个比较器就可以了

2.功能

五.关于PriorityQueue使用时的注意事项:

1.PriorityQueue中放置的元素必须要能够⽐较⼤⼩,不能插⼊⽆法⽐较⼤⼩的对象,否则会抛出 ClassCastException异常

2. 不能插⼊null对象,否则会抛出NullPointerException

3. 没有容量限制,可以插⼊任意多个元素,其内部可以⾃动扩容

4. 插⼊和删除元素的时间复杂度为

5. PriorityQueue底层使⽤了堆数据结构

6. PriorityQueue默认情况下是⼩堆---即每次获取到的元素都是最⼩的元素

7.当调用grow(扩容)时,如果>64,1.5倍扩容,<64,2倍扩容

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 10:11:14

Linly-Talker如何实现不同文化面部微表情适配?

Linly-Talker如何实现不同文化面部微表情适配&#xff1f; 在虚拟主播直播带货、数字员工接待客户、AI教师远程授课的今天&#xff0c;我们越来越难分辨屏幕那头是真人还是“数字人”。但真正让人信服的&#xff0c;往往不是逼真的建模精度&#xff0c;而是那一瞬间的眼神流转、…

作者头像 李华
网站建设 2026/5/1 8:55:26

Linly-Talker能否识别情感文本并调整语调?情感TTS验证

Linly-Talker 能否识别情感文本并调整语调&#xff1f;一场关于情感 TTS 的深度验证 在虚拟主播能带货、AI 客服会共情的今天&#xff0c;我们对“数字人”的期待早已不再是那个只会机械念稿的电子形象。用户想要的是一个听得懂情绪、讲得出温度、看得见表情的智能体——换句话…

作者头像 李华
网站建设 2026/4/27 16:50:56

在上海,一份CAIE认证如何为我打开AI世界的窗:思维与能力的双重旅程

在节奏飞快的上海&#xff0c;科技创新浪潮无处不在。无论是参与行业会议&#xff0c;还是与不同领域的朋友交流&#xff0c;“人工智能”总是一个绕不开的话题。作为一名非技术出身的职场人&#xff0c;我曾长期觉得AI是专属于工程师的领域&#xff0c;直到我开始了解并参与了…

作者头像 李华
网站建设 2026/4/19 3:06:36

基于SpringBoot+Vue的家具销售商城系统设计与实现

前言 &#x1f31e;博主介绍&#xff1a;✌CSDN特邀作者、全栈领域优质创作者、10年IT从业经验、码云/掘金/知乎/B站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发、文档编写、答疑辅导等。✌…

作者头像 李华
网站建设 2026/5/1 3:48:49

Linly-Talker在在线托福雅思培训中的口语陪练应用

Linly-Talker在在线托福雅思培训中的口语陪练应用 在远程教育迅速普及的今天&#xff0c;英语口语能力的提升依然是许多学习者难以跨越的门槛。尤其是在托福、雅思这类高要求的语言考试中&#xff0c;考生不仅需要具备扎实的语法和词汇基础&#xff0c;更要在真实对话场景中展…

作者头像 李华
网站建设 2026/5/1 6:17:16

前端实现视频播放,零基础入门到精通,收藏这篇就够了

前端实现视频播放 浏览器可直接支持播放的视频格式包括&#xff1a;.mp4,.WebM,Ogg 其他格式可能需要转码或者通过插件实现播放&#xff0c;我这里仅考虑这三种格式 <video controls src"" id"videoId" autoplay></video>controls: 是否显示…

作者头像 李华