堆 堆是一种数据结构,需要满足如下几个特性 堆是一颗完全二叉树(生成节点的顺序是从左往右,从上往下依次进行) 堆中某个节点值总是不大于或者不小于其父节点的值 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆 大根堆和小根堆如下图所示 大部分语言都会内置堆的实现,即优先级队列(Java中为PriorityQueue),所以当我们有用到堆的场景时,直接用PriorityQueue即可 // 小根堆 int[] array = {