`
k_lb
  • 浏览: 798386 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论
  • kitleer: 据我所知,国内有款ETL调度监控工具TaskCTL,支持ket ...
    kettle调度

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

 
阅读更多

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

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

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


分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics