基础概念
定义:一种特殊的队列,元素按优先级排序,优先级高的元素先被取出
例子: 想象一个紧急任务处理系统,紧急任务优先处理,非紧急任务等待
特点:
- 按优先级排序: 元素按优先级排序,优先级高的元素先被取出
- FIFO: 在同一优先级下,元素按照先进先出原则排序
- 优先级比较: 需要一个优先级比较函数,用于比较元素的优先级
基本操作
- 入队 (Enqueue): 将元素插入队列,并根据优先级找到合适的位置
- 出队 (Dequeue): 取出优先级最高的元素
- 查找 (Peek): 查看优先级最高的元素
应用场景
- 任务调度系统: 根据任务优先级调度任务执行
- 操作系统: 处理中断和信号,优先处理紧急事件
- 贪婪算法: 选择最优解,例如 Dijkstra 算法