您的位置:首页 > 编程语言

编程之美读书笔记3.7队列中取最大值操作的问题 解法2

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

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

3)如何在堆中删除一个元素呢?编程之美中说时间复杂度也是树的深度
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 编程 读书