news 2026/2/24 15:08:16

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

作者头像

张小明

前端开发工程师

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/2/24 3:06:19

智能测试自动化新趋势:软件测试从业者的未来之路

在数字化转型加速的今天&#xff0c;软件测试行业正经历一场由智能技术驱动的深刻变革。截至2025年底&#xff0c;随着人工智能、机器学习和云原生技术的普及&#xff0c;智能测试自动化不再仅仅是一个工具选项&#xff0c;而是提升软件质量和开发效率的核心驱动力。对于软件测…

作者头像 李华
网站建设 2026/2/24 10:04:27

机器学习——决策树之回归树

概念解决回归问题的决策树模型你就是回归树回归树是一种基于决策树的监督学习算法&#xff0c;用于解决回归问题。通过递归地将特征空间划分为多个子区域&#xff0c;并在每个子区域内拟合一个简单的预测值&#xff08;如均值&#xff09;&#xff0c;实现对连续目标变量的预测…

作者头像 李华
网站建设 2026/2/20 15:55:38

Linly-Talker在高校招生宣传中的个性化推送实验

Linly-Talker在高校招生宣传中的个性化推送实验在每年高考季&#xff0c;高校招生办的老师们总是面临一个共同难题&#xff1a;如何用有限的人力&#xff0c;在短时间内回应成千上万考生和家长五花八门的问题&#xff1f;“我这个分数能报你们学校吗&#xff1f;”“电气工程专…

作者头像 李华
网站建设 2026/2/23 13:46:38

Linly-Talker如何处理长文本输入的上下文连贯性?

Linly-Talker 如何实现长文本生成中的上下文连贯性 在虚拟主播、数字员工和智能教学日益普及的今天&#xff0c;用户早已不再满足于“能说话”的数字人——他们期待的是一个有逻辑、懂语境、表达自然的对话伙伴。尤其是在处理一篇长达数千字的科普文章或一份复杂的业务报告时&a…

作者头像 李华
网站建设 2026/2/24 1:11:16

Linly-Talker在电商直播中的潜力与落地场景

Linly-Talker在电商直播中的潜力与落地场景 如今&#xff0c;一场直播带货的深夜场次正悄然开启。镜头前的“主播”声情并茂地介绍着新款蓝牙耳机&#xff0c;面对观众提问对答如流&#xff1a;“这款有粉色款吗&#xff1f;”“支持多久续航&#xff1f;”她微笑着点头、嘴唇精…

作者头像 李华