hello-algo/docs/chapter_heap/summary.md

693 B

小结

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