堆实际上是一棵完全二叉树
大顶堆:任何一非叶节点的关键字不小于其左右孩子节点的关键字(即根节点的值>=其左右结点的值)
小顶堆:任何一非叶节点的关键字不大于其左右孩子节点的关键字(即根节点的值<=其左右结点的值)
构建大小顶堆的方法:从根结点开始排序,调整为满足大(小)顶推的特点。
e.g.1 将{36, 48, 48, 90, 88, 80, 76, 99}构建成大顶推
说明:从结点 90 开始排序,根结点90<其叶子节点99,故交换;
根结点48<其叶子节点99,故交换;根结点48<其叶子节点80,故交换;
.......
知道结点都满足条件。
e.g.2将{16,7,3,20,17,8}构建成小顶推