当前位置: 首页 > news >正文

数据结构与算法===优先队列

文章目录

  • 前言
  • 一、优先队列
  • 二、应用场景
  • 三、代码实现
  • 总结


前言

之前写过很多数据结构与算法相关的了,今天看一个新的数据结构,优先队列。优先队列类似队列,却又优先于队列,是堆实现的。接下来详细看看。


一、优先队列

优先队列一种特殊的队列。在优先队列中,元素被赋予优先级,当访问队列元素时,具有最高优先级的元素最先删除;
普通队列就是先进先出的。

二、应用场景

这个太多了,最经典的就是top k元素,将所有元素放进一个优先队列中,然后一个一个出来,到第K个,就是第K大元素了。接下来看看stl怎么实现的。


三、代码实现

在这里插入图片描述
上图是stl的实现。看红色框中的代码,主要有入队,出队操作;
在这里插入图片描述
这个是push_heap,入队操作;接下来看看出队pop_heap,如下:
在这里插入图片描述
看下上图,七个步骤,出队操作。最后又执行了一个__push_heap。这个写的挺简洁的。通用的模板,很多地方都在用。思考程度非一般人可比。

总结

优先队列,一个高于普通队列的数据结构,按照优先级排序,每次放进去一个数据,都要看下优先级,这就是adjust_heap的作用。入队,按照优先级调整;出队,也要按照优先级调整;这个代码的实现是基于它的特性确定的。很简洁了。好好学习学习。如果实在有疑惑,可以去学习网站看看,有可能就能解决了呢!嘿嘿。OK,翻篇。

http://www.lryc.cn/news/349332.html

相关文章:

  • HTML常用标签-超链接标签
  • 财务管理|基于SprinBoot+vue的财务管理系统(源码+数据库+文档)
  • 快速学习SpringAi
  • 谈谈 Spring 的过滤器和拦截器
  • 请介绍下H264的多参考帧技术及其应用场景,并请说明下为什么要有多参考帧?
  • 第6章 Elasticsearch,分布式搜索引擎【仿牛客网社区论坛项目】
  • odoo 全局调整list_controller中默认方法(form_controller和kanban_controller等亦可以同样操作)
  • 大模型日报2024-05-13
  • 【使用Condition来模拟生产消费】
  • 5.14学习总结
  • 最新极空间部署iCloudpd教程,实现自动同步iCloud照片到NAS硬盘
  • Sketch总结
  • 【iOS】工厂模式
  • 目标检测算法YOLOv6简介
  • 如何修复显示器或笔记本电脑屏幕的黄色色调?这里提供几种方法
  • 5.14 力扣每日一题 贪心
  • wordpress 访问文章内容页 notfound
  • 【Python探索之旅】列表
  • 搜维尔科技:深入探讨Varjo XR头显在汽车行业的可能性
  • YOLOv8预测流程-原理解析[目标检测理论篇]
  • TCP超时重传机制
  • Oracle 的 RMAN(Recovery Manager) 和 DM(达梦数据库)的 DMRman异同
  • HVV面试题2024护网蓝队面试题
  • 算法题--华为od机试考试(组成最大数、第k个排列、最小传输时延)
  • 2024 年最新本地、云服务器安装部署 miniconda 环境详细教程(更新中)
  • Python进行excel处理-01
  • 苹果macOS无法给App麦克风授权解决办法
  • 图的深度优先遍历
  • 13 华三三层链路聚和
  • C# 下载安装,使用OfficeOpenXml