二叉堆的基本原理
原创约 2224 字
二叉堆(Binary Heap)没什么神秘,性质比二叉搜索树(Binary Search Tree)还简单。
二叉堆的主要操作就两个,sink
(下沉)和 swim
(上浮),用以维护二叉堆的性质。
二叉堆的主要应用有两个,首先是一种很有用的数据结构优先级队列(Priority Queue),第二是一种排序方法堆排序(Heap Sort)。
这个可视化面板直观地展示了二叉堆的基本操作,你可以点击跳转执行其中的代码,或自己修改代码玩一玩:
下面我就结合可视化面板来展示二叉堆的原理,最后以优先级队列为例,展示二叉堆的代码实现。