什么是堆
堆是一种非线性结构,可以把堆看作一个数组,也可以把堆看作一个完全二叉树,通俗来讲堆其实就是利用完全二叉树的结构来维护的一维数组
构造大顶堆(Javascript实现)
大顶堆的概念:每个结点的值都大于或等于其左右孩子结点的值
给定一个序列,按照序列的顺序先依次组成一个完全二叉树,然后再将不稳定的节点的值进行处理,形成大顶堆
//构建大顶堆
function MaxHeap(array){
//开始位置是最后一个非叶子节点
let start = Math.floor(array.length/2-1);
for(let i = start;i>=0;i--){
console.log(array);
createHeap(array,i);
}
//打印构造好的大顶堆
console.log(array);
function