由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 到底什么是priority queue啊?
相关主题
leetcode 上的k way merge弱弱的问个C++用priority_queue定义min heap的问题
问一个面试经常问的ood,维护前k名的list的问题L家coding question一问
twittier的onsite挂了,来问个常见题算法--找一个unsorted array的largest and second largest 最
k sorted array merge大家现场写一个heap?请教一道C++面试题
Xad刚电面完 问了一个million number array 怎么找前100大找个码工就这么难?
跟人聊了一道题,怎么做最优。当数据很大时,如果做BFS、DFS?
问个G家面经题弱问C++用heap的题能用multiset吗
Find top K most frequent numbers?面试用C++, heap 怎么办?
相关话题的讨论汇总
话题: queue话题: priority话题: heap话题: java话题: 实现
进入JobHunting版参与讨论
1 (共1页)
a*******g
发帖数: 1221
1
经常看到这个词,现实中也没见过。system design的时候一到关键地方就说这用
priority queue,但我到现在也没明白啥是priority queue。它到底是queue还是array
还是heap还是map。譬如给你45分钟写一个,那怎么写?
C*****n
发帖数: 1049
2
等你有些编程经验了再回来自己回答这个问题吧
W***o
发帖数: 6519
3
其实pq就是heap的马甲
a*******g
发帖数: 1221
4
你不知道就说不知道,不要装逼

【在 C*****n 的大作中提到】
: 等你有些编程经验了再回来自己回答这个问题吧
f*******t
发帖数: 7549
o****o
发帖数: 35
6
挖坑的吧
R*****i
发帖数: 2126
7
我也不知道priority queue究竟是个神马鬼东西,看了维基也不知所云,queue难道不
是已经有order了嘛?也许priority queue的每个元素还有另外一个属性构成了另一个
order,所以priority queue其实是一个queue 外加一个 sorted list?
n**********r
发帖数: 43
8
Priority Queue就是有Priority的Queue(废话)。它是Heap在Java语言里的具体实现
。不同语言里对Heap的实现类名不同,也稍有区别。在C#里,类似的是
SortedDictionary(Dictionary是类似Java里的HashMap)。在JavaScript里,就要自己
实现或用第三方的库了。比如http://www.collectionsjs.com/heap
Java里如果不是让你自己实现PriorityQueue的话,直接拿来用就可以了。它默认实现
了最小堆,如果要用最大堆,需要定义一个Comparator,实现compare方法。如果自己
实现的话,实现的方式可以有很多种。具体就看看Heap的定义吧。
u********s
发帖数: 1047
9
就是java里的heap
b*j
发帖数: 33
10
反了,在Java库里面Priority Queue是用Heap来实现的。

【在 n**********r 的大作中提到】
: Priority Queue就是有Priority的Queue(废话)。它是Heap在Java语言里的具体实现
: 。不同语言里对Heap的实现类名不同,也稍有区别。在C#里,类似的是
: SortedDictionary(Dictionary是类似Java里的HashMap)。在JavaScript里,就要自己
: 实现或用第三方的库了。比如http://www.collectionsjs.com/heap
: Java里如果不是让你自己实现PriorityQueue的话,直接拿来用就可以了。它默认实现
: 了最小堆,如果要用最大堆,需要定义一个Comparator,实现compare方法。如果自己
: 实现的话,实现的方式可以有很多种。具体就看看Heap的定义吧。

b***s
发帖数: 117
11
很简单,queue的意思是先进先出,priority queue也是进进出出,
不过它是找到那最最小的,先出
然后为了找最小的,用的heap来做,
而在代码里heap用一个array来表示,如果array的index从1开始的话,index i 的子节
点是 2*i 和 2*i + 1
45分钟很够了
然后,比如top k的问题,大概就是去出 k 次的意思,不过每一次出都要一个 logn 的
时间
如果赶时间,我会考虑先对top k排序,然后数据修改/添加的时候过一下heap

array

【在 a*******g 的大作中提到】
: 经常看到这个词,现实中也没见过。system design的时候一到关键地方就说这用
: priority queue,但我到现在也没明白啥是priority queue。它到底是queue还是array
: 还是heap还是map。譬如给你45分钟写一个,那怎么写?

c****7
发帖数: 1
12
Priority Queue是一个抽象数据结构,类似的一些应用有急诊室叫号,Queue是先进先
出,如果在急诊室,有些挂号需要加急处理,这时候就需要用到Priority Queue。一般
implemented用heap,heap自然用array,你非要用linkedlist也可以,但效率显然不如
array。
1 (共1页)
进入JobHunting版参与讨论
相关主题
面试用C++, heap 怎么办?Xad刚电面完 问了一个million number array 怎么找前100大
FB电面挂了,求指点跟人聊了一道题,怎么做最优。
也问一个算法题问个G家面经题
刚面的,发一个google新题Find top K most frequent numbers?
leetcode 上的k way merge弱弱的问个C++用priority_queue定义min heap的问题
问一个面试经常问的ood,维护前k名的list的问题L家coding question一问
twittier的onsite挂了,来问个常见题算法--找一个unsorted array的largest and second largest 最
k sorted array merge大家现场写一个heap?请教一道C++面试题
相关话题的讨论汇总
话题: queue话题: priority话题: heap话题: java话题: 实现