跳转至

9.3.   小结

  • 堆是一棵完全二叉树,根据成立条件可分为大顶堆和小顶堆。大(小)顶堆的堆顶元素是最大(小)的。
  • 优先队列的定义是具有出队优先级的队列,通常使用堆来实现。
  • 堆的常用操作及其对应的时间复杂度包括:元素入堆 \(O(\log n)\) 、堆顶元素出堆 \(O(\log n)\) 和访问堆顶元素 \(O(1)\) 等。
  • 完全二叉树非常适合用数组表示,因此我们通常使用数组来存储堆。
  • 堆化操作用于维护堆的性质,在入堆和出堆操作中都会用到。
  • 输入 \(n\) 个元素并建堆的时间复杂度可以优化至 \(O(n)\) ,非常高效。

评论