摘要: 最大堆和利用堆的性质对数组进行排序。 HeapFy函数是将节点i为根节点的子树变为最大堆(注意是维护后的i节点作为子树的根节点),length参数为堆得的元素个数 BuildHeap函数是将长度为length的数组建成一个最大堆。这里对每一个非叶子节点进行HeapFy HeapSort对长度为length的数组进行排序(共有length个元素需要排序,下表从1开始)。步骤为先建一个最大堆,然后将堆顶元素与末尾元素互换,然后维护length-1个数的堆,直至堆的长度为1。这里有个关键的地方就是:如果节点的左右两颗子树分别为最大堆,则维护以i为根节点的堆必为最大堆。 阅读全文
posted @ 2011-08-03 19:06 akawhy 阅读(382) 评论(0) 推荐(0) 编辑