news 2026/9/1 22:00:54

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

作者头像

张小明

前端开发工程师

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/8/31 15:43:07

12.20 - 反转链表II

1.反转链表/*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *next) : val(x), next(next) {}*…

作者头像 李华
网站建设 2026/9/1 1:59:49

Linly-Talker项目CI/CD流程自动化程度评估

Linly-Talker项目CI/CD流程自动化程度评估 在AI驱动的数字人技术加速落地的今天&#xff0c;一个关键挑战浮出水面&#xff1a;如何让复杂的多模块系统既能快速迭代&#xff0c;又保持高可用和可维护性&#xff1f;以虚拟主播、智能客服为代表的数字人应用&#xff0c;往往集成…

作者头像 李华
网站建设 2026/9/1 12:08:42

Linly-Talker能否接入Dialogflow实现多轮对话逻辑?

Linly-Talker 能否接入 Dialogflow 实现多轮对话逻辑&#xff1f; 在虚拟客服、数字员工等实际业务场景中&#xff0c;用户不会只问一句“你好”&#xff0c;然后满意地离开。他们更可能说&#xff1a;“我想预约下周二的心理咨询……对&#xff0c;下午三点左右……需要带什么…

作者头像 李华
网站建设 2026/8/31 19:57:26

Linly-Talker在音乐教学中的节奏同步可视化尝试

Linly-Talker在音乐教学中的节奏同步可视化尝试 在一场线上声乐课上&#xff0c;学生对着屏幕反复跟唱&#xff0c;却始终抓不准节拍。老师一边播放示范音频&#xff0c;一边用手打拍子&#xff1a;“这里要重一点&#xff01;注意休止符&#xff01;”可声音与口型不同步的视频…

作者头像 李华
网站建设 2026/9/1 15:29:30

DAY 42 训练和测试的规范写法

一、彩色和灰度图片测试和训练的规范写法 在深度学习中&#xff0c;彩色&#xff08;RGB&#xff09;和灰度图片的训练与测试核心规范是&#xff1a;保持预处理逻辑一致、通道数与模型输入匹配、数据格式统一。 1.单通道图片的规范写法 import torch import torch.nn as nn i…

作者头像 李华
网站建设 2026/9/1 1:32:57

Linly-Talker生成视频帧率稳定性测试结果公布

Linly-Talker生成视频帧率稳定性测试结果公布 在虚拟主播、AI客服和智能教育日益普及的今天&#xff0c;用户对“会说话的数字人”的期待早已超越了简单的语音播报。人们希望看到的是口型自然、表情生动、响应及时的交互体验——而这一切的背后&#xff0c;帧率稳定性是决定成…

作者头像 李华