优先队列

✍ dations ◷ 2025-07-07 08:38:12 #数据结构

优先队列是计算机科学中的一类抽象数据类型。优先队列中的每个元素都有各自的优先级,优先级最高的元素最先得到服务;优先级相同的元素按照其在优先队列中的顺序得到服务。优先队列往往用堆来实现。

优先队列至少需要支持下述操作:

其它可选的操作:

有许多简单低效的实现。如用一个有序的数组;或使用无序数组,在每次取出时搜索全集合,这种方法插入的效率为O(1),但取出时效率为​O(n)。

出于性能考虑,优先队列用堆来实现,具有(log )时间复杂度的插入元素性能,()的初始化构造的时间复杂度。如果使用自平衡二叉查找树,插入与删除的时间复杂度为(log ),构造二叉树的时间复杂度为( log )。

从计算复杂度的角度,优先级队列等价于排序算法。

有一些特殊的堆为优先队列的实现提供了额外的性能:二叉堆的插入与提取操作的时间复杂度为(log ),并可以常量时间复杂度的peek操作。二项堆提供了几种额外操作。斐波那契堆的插入、提取、修改元素优先级等操作具有分摊常量时间复杂度,,但删除操作的时间复杂度为(log )。Brodal queue(英语:Brodal queue)具有最糟糕情况下的常量复杂度但算法相当复杂因而不具有实用性。

对于整型、浮点型等具有有限值域的元素的数据类型,优先队列有更快的实现。

优先队列是计算机科学中的一类"容器数据类型"。

标准模板库(STL)以及1998年的C++标准确定优先队列是标准模板库的容器适配器模板。其实现了一个需要三个参数的最大优先队列:比较函数(缺省情况是小于函数less<T>)、存储数据所用的容器类型(缺省情况是向量vector<T>)以及指向序列开始和结束位置的两个迭代器。和标准模板库中其他的真实容器不同,优先队列不允许使用其元素类型的迭代器,而必须使用优先队列抽象数据类型的迭代器。标准模板库还实现了支持随机访问数据容器的优先队列--二叉最大堆。Boost C++库也在其中实现了堆结构。

Python的heapq模块实现了在链表基础上的二叉最小堆,queue模块将heapq模块包装实现了PriorityQueue类。

Java库中的PriorityQueue类实现了最小优先队列。

Go库中的container/heap模块实现了一个可以在任何兼容数据结构上构建的最小堆。

PHP标准库包括了一个优先队列SplPriorityQueue。

苹果的Core Foundation框架包括了一个最小堆结构CFBinaryHeap。

优先队列常用于操作系统的任务调度,也是贪心算法的重要组成部分。

相关

  • 药品人体解剖学 - 人体生理学 组织学 - 胚胎学 人体寄生虫学 - 免疫学 病理学 - 病理生理学 细胞学 - 营养学 流行病学 - 药理学 - 毒理学药品指一切用作诊断、治疗、预防疾病
  • 国际接吻日国际接吻日,也称世界接吻日,是一项于每年7月6日庆祝的非官方节日,始于英国,并于21世纪早期推广向全球。该项节日旨在提醒人们享受接吻本身的乐趣,而非将接吻作为社交或性行为的前
  • 奥地利经济学派奥地利经济学派(英语:Austrian School)是一种经济学派,源自19世纪末的奥地利,延续至20世纪的美国等地,代表人物包括了卡尔·门格尔、欧根·博姆-巴维克、弗里德里克·哈耶克、路德
  • 乐天 (Rakuten)乐天株式会社(英语:Rakuten, Inc.,日语:楽天株式会社),是三木谷浩史于1997年2月7日创办的一家经营互联网服务的公司。旗下企业包括:日本电商平台“乐天市场”、门户网站“Infoseek
  • 丹尼尔·布恩国家森林丹尼尔·布恩国家森林(英语:Daniel Boone National Forest)是唯一一座完全位于肯塔基州境内的国家森林。该森林设立于1937年,起初名为坎伯兰国家森林(Cumberland National Forest
  • 汉斯·维尔纳·亨策汉斯·维尔纳·亨策(德语:Hans Werner Henze,1926年7月1日-2012年10月27日),德国作曲家,马克思主义者,同性恋者。早年曾参加二战,1948年在达姆施塔特学习,1953年因政治原因定居意大利,6
  • 穆罕默德·里安·阿利安托穆罕默德·里安·阿利安托(印尼语:Muhammad Rian Ardianto,1996年2月13日-),印尼男子羽毛球运动员,专长男双项目。他与搭档法贾·阿尔弗兰的组合最高世界排名第6位,曾拿得2018年亚运
  • 拉希德·加努希拉希德·加努希(英语:Rashid al-Ghannushi或Rached Ghannouchi;阿拉伯语:راشد الغنوشي‎;1941年-)是一名突尼斯伊斯兰主义政治家,是复兴运动党的创始人。1941年他生于突
  • 黄宗江黄宗江(1921年10月-2010年10月18日),男,祖籍浙江瑞安,生于北京,中国剧作家。2005年被中华人民共和国人事部、国家广播电影电视总局评为“国家有突出贡献电影艺术家”。兄弟姐妹有黄
  • 巫姓巫姓是一个中文姓氏,在《百家姓》中排第220位。巫姓的起源传说,主要有三个:广东省梅州台湾彰化县溪湖一带