优先级队列--最大堆

来源:互联网 发布:养女方知世道险 编辑:程序博客网 时间:2024/06/05 07:02

1.Priority Queue:利用最大堆实现优先级队列,每个元素都有个关键字key,主要涉及以下方法:

注意:堆排序是不稳定的,所以用最大堆构建的优先级队列也是不稳定的,比如两个优先级为9的任务,不一定先加入的先执行

(1)insert ( S, x ) 把元素x插入集合s中 ,复杂度为O(nlogn)

(2)maximum (s)返回队列头部即优先级最大的元素

(3)extractMax(s) 去掉队列头部元素,剩下元素依旧满足优先级队列(相当于最大堆移除根节点,剩下元素依旧维持最大堆性质),O(nlogn)

(4)increaseKey (s, x, k)将元素x的关键字增加到k.,O(nlogn)



0 0
原创粉丝点击