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)
转载请注明原文地址: https://ju.6miu.com/read-10051.html