关于堆操作(小根堆为例)

明确:堆为完全二叉树,用一维数组存,为了方便,下标由1开始

1.建堆,用o(n)的复杂度 (可以用数学归纳法证明(核心就是叶子不用down操作))

核心是从非叶子节点往下down

2.查看最小值 heap[1]

3.插入一个值x

size++ heap[size]=x 插入堆的末尾也就是树的最后一个节点,然后做up[size]

4.删除堆顶

heap[1]=heap[size] size-- down[1]

5.删除任意一个值 k

heap[k]=heap[size] size-- up[k]/downp[k] 这里指有可能上浮或者下沉

6.修改任意一个值 k为x

heap[k]=x     down(k)/up(k)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值