数据结构-优先队列

优先队列的类定义

优先队列是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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值