算法笔记-优先级队列-堆

优先级队列特性

  • 获取最小元素提取(删除)
  • 添加元素(插入)

实现方式:

  • 无序链表,插入O(1), 删除时需要查找最小值O(N)
  • 有序链表,插入O(N), 删除时需要查找最小值O(1)
  • 二叉查找树,两种操作O(logN), 操作过多后,反复去除左子树节点会破坏平衡,加重右子树

三种实现都不理想,下面将采用非链表结构,以最坏O(logN)支持以上操作。插入花费常数时间。

二叉堆

特性

  • 结构性-完全二叉树
  • 堆序性- 父节点小于左右子节点

操作

  • 插入
    • 上滤
  • 删除最小元素
    • 下滤

Comments