是吗:
在实现优先级队列时,哪一个是程序员的默认/自然选择?这个特定选择优先于另一个的原因是什么?
答案 0 :(得分:2)
我建议实现一个梯形图队列,这是一个O(1)
优先级队列。
正式定义:Ladder queue: An O(1) priority queue structure for large-scale discrete event simulation
答案 1 :(得分:0)
我会说堆速度。
列表具有线性访问时间,而堆O(log(n))访问是可能的(插入/删除),而列表允许在O(1)中使用deletemin但是插入时有O(n)
答案 2 :(得分:0)
在奇怪的情况下,我需要一个优先级队列,只有一小部分优先级,所以我已经能够逃脱一系列'普通'FIFO队列,按优先级索引。 pop()方法从最高优先级的末尾迭代数组,寻找非零计数。