在一个包含n个元素的堆中,所有优先级队列的操作都可以在O(lgn)时间内完成.
这些操作包括:
INSERT(S, x): 把元素x插入队列S中.这一操作等价于S=S并{x}
MAXIMUM(S): 返回S中具有最大关键值的元素
EXTRACT-MAX(S): 去掉并返回S中具有最大关键值的元素
INCREASE-KEY(S, x, k): 将元素x的关键值增加到k,这里假设k的值不小于x的值
优先队列的应用很多,比如进程调度
我们可以使用MAXIMUM来获得优先级最高的任务
使用EXTRACT-MAX来获得该任务并且删除掉它
使用INSERT把一个新作业加入队列
使用INCREASE-KEY来增加一个已经存在的队列的优先级