优先队列

  • 普通队列:先进先出;后进后出
  • 优先队列:出队顺序和入队顺序无关;和优先级相关

主要操作:

  • 入队
  • 出队(取出优先级最高的元素)

优先队列的实现:

入队出队
普通数组O(1)O(n)
顺序数组O(n)O(1)
O(log n)O(log n)

使用堆实现优先队列

对于总共 N 个请求:

使用普通数组或者顺序数组,最差情况是 O(n^2)

使用堆:O(n log n)


参考资料: