博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是优先级队列(priority queue)?
阅读量:6678 次
发布时间:2019-06-25

本文共 708 字,大约阅读时间需要 2 分钟。

 

有时候我们需要在某个元素集合中找到最小值和最大值 。优先级队列抽象数据(Priority Queue ADT)模型是我们能够使用的方法之一,这是一种支持插入和删除最小值(DeleteMin)或者最大值(DeleteMax)的数据结构。

这两个操作和队列中的进队(EnQueue)和出队(DeQueue)操作很相似。区别就在于,在优先级队列中,数据进入的顺序与他们接受处理的顺序可能不同。就像工作日程,一般是按重要程度排序而不是到来顺序。

priority_queue

在优先级队列中,如果最小的元素总是优先级最高(即最小元素先出列),就叫升序优先级(ascending – priority)序列。相应的,如果最大的元素优先级最高那么就叫降序优先级(descending – priority)序列。这两种对列具有对称性,我们只要了解一种,另一种依葫芦画瓢就可以了。

优先级队列的应用:

  • 数据比较:huffman编码算法。
  • 最短路径算法:迪刻斯彻算法。
  • 最小生成树算法:Prim算法。
  • 事件驱动仿真:排队的顾客。
  • 选择问题:找到第k个最小的元素。

优先级队列的操作:

  • 插入数据(key,data):插入带有key的数据,优先级队列中的数据的顺序由key决定。
  • 删除最小/最大数据:移除并且返回带有最小/最大key的元素。
  • 获取最小/最大数据:返回返回带有最小/最大key的元素(不删除)。
  • 第k位最小/最大数据:取得第k位带有最小/最大key的元素。
  • 取大小(Size):返回优先级队列的大小。
  • 堆排序:将队列中的元素按key进行排序。

转载于:https://www.cnblogs.com/programnote/p/4718691.html

你可能感兴趣的文章
智慧城市建设如火如荼 刺激传感器市场需求扩大
查看>>
物联网“突围” 移动医疗产业加速试水
查看>>
外媒:40余外国企业团体致函反对中国网络安全法
查看>>
持续集成---减少持续集成的时间
查看>>
国内虚拟运营商借SDN布局5G网络
查看>>
互动性可视化 打通大数据最后一公里
查看>>
服务器部署十大问题系列三:创建文档与旧设备处理
查看>>
零基础学习SVN之(三):可视化SVN的使用
查看>>
IOS开发之显示微博表情
查看>>
Snap首份季度财报或让投资人失望 股价被指偏高
查看>>
新来的NB-IoT为什么这么NB?
查看>>
DoCoMo跳过HSPA+ 力争全球首家推出LTE商用服务
查看>>
Mozilla火狐发布最新计划:用户隐私和安全为发展核心
查看>>
金融行业解决方案
查看>>
[原创]分析解决lvs fullnat模式下后端服务器获取真实IP地址异常问题
查看>>
《Arduino开发实战指南:LabVIEW卷》——3.3 LabVIEW的常用工具及调试工具
查看>>
中国正式启动5G技术研发试验:力争2020年商用
查看>>
《精解 Windows 10》——第2章 Modern 2.0界面体验 2.1Modern 2.0界面
查看>>
《Android深度探索(卷1):HAL与驱动开发》——1.5节如何学习Linux驱动开发
查看>>
《Photoshop七大核心技术》—第2课Photoshop七大核心技术
查看>>