编程之美读书笔记3.7队列中取最大值操作的问题 解法2( 由堆排序算法想到的)...

1)堆筛选算法HeapAdjust 的一个前提是假设的是左右两个子树都是最大堆或最小堆了,也就是只有根节点是无序的。通过这道题比较深刻理解了堆排序的算法。

2)向堆中插入一个元素的方法
如何在一个已调整好的最大堆中添加一个元素呢?想到的一个方法就是将该元素置于最后位置,然后对整个数组加上这个最后的元素进行堆排序,这时之前有序的堆貌似就没多大作用了。第二个方法是采用类似于冒泡的思想,其实利用已经是堆的原理,这样的话时间复杂度为堆的深度吧。

3)如何在堆中删除一个元素呢?编程之美中说时间复杂度也是树的深度,这个由于时间关系没有去仔细想。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值