摘要: 堆排序法利用二叉树最大堆实现对数字的排序。其排序的时间为O(nlgn)。本文给出了一个堆排序算法的简单实现(利用C++),希望对大家有用。该排序算法主要利用了二叉树最大堆的以下属性:属性定义:二叉树最大堆的任意节点的值小于等于其父节点的值;根据该定义,便可以按照以下步骤轻松实现堆排序算法:利用输入的数组建立一个最大堆,则最大堆的根节点为数组元素中的最大值;将根节点的值和最后一个节点值进行交换(实际上就是将最大值存入数组的最后一个位置中)利用堆中剩余的所有节点再次建立一个二叉树最大堆;然后进行第一和第二步操作;这样,每完成一次操作,堆中的节点便减少一个;由于时间关系,该算法的实现细节不予讨论,一 阅读全文
posted @ 2011-05-16 17:46 cylee025 阅读(1955) 评论(0) 推荐(0) 编辑