将数组构建成大顶推

本文介绍了堆的数据结构,重点讲解了大顶堆和小顶堆的概念,以及如何通过调整操作将一组数据构建成大顶堆或小顶堆。以示例详细解释了构建过程,如将数列转化为满足大顶堆或小顶堆性质的结构。
摘要由CSDN通过智能技术生成

堆实际上是一棵完全二叉树

大顶堆:任何一非叶节点的关键字不小于其左右孩子节点的关键字(即根节点的值>=其左右结点的值

小顶堆:任何一非叶节点的关键字不大于其左右孩子节点的关键字(即根节点的值<=其左右结点的值


构建大小顶堆的方法:从根结点开始排序,调整为满足大(小)顶推的特点。


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}构建成小顶推


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值