赞
踩
优先队列是0个或多个元素的集合,每个元素都有一个优先权或值,对优先队列执行的操作有1) 查找;2) 插入一个新元素;3)
删除.在最小优先队列(min priority
queue)中,查找操作用来搜索优先权最小的元素,删除操作用来删除该元素;对于最大优先队列(max priority
queue),查找操作用来搜索优先权最大的元素,删除操作用来删除该元素.优先权队列中的元素可以有相同的优先权,查找与删除操作可根据任意优先权进行.
面试题:
优先队列通常采用(1)的数据结构实现,向队列中插入1个元素的时间复杂度为(2)
ans:
1.堆
2.O(logN)
解析:优先队列是一种常用的数据结构,通常用堆实现,也可以用其他方式实现。
对应于大顶堆和小顶堆,存在最大优先队列和最小优先队列。以最大优先队列为例,优先队列除了具有堆上的一些操作,如调整堆, 构建堆之外,还有获得优先队列的最大元素,抽取出优先队列的最大元素,向优先队列中插入一个元素和增大优先队列中某个元素的值。
其中除了获得优先队列的最大元素的时间复杂度是O(1)之外,其他操作均为二叉树的高度O(lgN)
详细请见:http://blog.csdn.net/changyuanchn/article/details/14564403#comments
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。