[学习记录]堆

堆是一种特殊的完全二叉树,我们在构造二叉查找树的时候,保持左子树<根节点<右子树,而最大堆和最小堆则是要求根节点大于或小于所有子节点。

 

由于堆是一种完全二叉树,所以可以用线性数组保存,假设根节点为1,父节点为n,则左子节点为2*n,右子节点为2*n+1

 

1.堆的插入

  统一在数组末端进行插入,然后比较子节点与父节点的大小关系,递归向上调整位置直到满足最大堆或最小堆的要求。

 

2.堆删除

  堆由于根节点具备特殊性质(最大或最小),因此堆中的删除一般指删除根节点,重构时,将数组末端的元素移动至根部,通过堆的规则调整顺序即可。

 

3.堆排序

  将堆的根节点依次弹出。

转载于:https://www.cnblogs.com/trickofjoker/p/10505519.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值