最小堆的特点是其父节点的值不大于任何一个字节点的值, 实现的是升序排序。 最小堆实现排序的原理,构建一个堆,不断的删除堆顶,这里的删除并不是完全删除, 而是将堆顶移动到末尾,然后父节点开始下沉操作,最后成为一个有序序列。 代码如下: package main import fmt func buidHeap(a []int, n int) { //heapify from the last parent node for i := n / 2; i >= 1; i-- { heapifyUpToDown(a, i, n) } } // 排序索引从