算法导论 学习笔记 第六章 堆排序

来源:互联网 发布:吉比特和电魂网络比较 编辑:程序博客网 时间:2024/06/05 19:39

这一章主要讲了两个点:1.堆排序。2.堆排序的应用(优先级队列)

堆排序

堆是一种完全二叉树(不理解)。反正是一种树状的数据结构了吧。有几种操作。求左子节点(2i),求右子节点(2i+1),求父节点(i/2)下取整。保持最大堆结构(max-heapfiy)建堆(building a heap)然后这些属性就可以实现堆排序了

如果书上的内容初看有点看不懂可以看看这个百度经验
书上的伟大码比较容易看懂,然后自己再画一画就可以理解了。

优先级队列

这个就是堆排序的一种用法吧。就像是如果有一堆的任务。就给每一个任务一个优先级(关键字)。你可以用关键字很容易找出你想找的任务。有一下几种操作:  HEAP-MAXIMUM(A) 返回最大值  HEAP-EXTRACT-MAX(A)  返回最大值并删除  HEAP-INCREASE-KEY(A,I,KEY)   将i的关键字值编程key  HEAP-INSERT(A,KEY)    将key插入

这里有些心得:一开始的时候觉得伪代码比较难懂。还不如源代码咧。但是现在我不这么觉得了。。
伪代码真是好东西,越看越喜欢。我要学一学怎么在博客上写伪代码了。

原创粉丝点击