前置知识

阅读本文前,你需要先学习:

一句话总结

二叉堆是一种能够动态排序的数据结构,是 二叉树结构 的延伸。

二叉堆的主要操作就两个,sink(下沉)和 swim(上浮),用以维护二叉堆的性质。

二叉堆的主要应用有两个,首先是一种很有用的数据结构优先级队列(Priority Queue),第二是一种排序方法堆排序(Heap Sort)。

这个可视化面板直观地展示了二叉堆的基本操作,你可以点击跳转执行其中的代码,或自己修改代码玩一玩:

Algorithm visualize
  算法可视化面板

下面我就结合可视化面板来展示二叉堆的原理,最后以优先级队列为例,展示二叉堆的代码实现。

二叉堆的性质

最常见的应用:优先级队列

另一种应用:堆排序

loading...