第10章(排序)分析.ppt

* 08 16 21 25* 25 49 交换 1号与3 号记录 21 16 08 25* 25 49 从 1 号到 3号重新 调整为最大堆 21 16 25* 08 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 * 08 16 21 25* 25 49 交换 1 号与2 号记录 16 08 21 25* 25 49 从 1 号到 2 号重新 调整为最大堆 16 08 25* 21 25 49 1 2 3 4 5 6 08 16 25* 25 21 49 1 3 6 5 4 2 * 基于初始堆进行堆排序的算法步骤: 堆的第一个对象V[0]具有最大的关键码,将V[0]与V [n] 对调,把具有最大关键码的对象交换到最后; 再对前面的n-1个对象,使用堆的调整算法,重新建立堆。 结果具有次最大关键码的对象又上浮到堆顶,即V[0]位置。 再对调V[0]和V[n-1]; 调用建堆的调整算法对前n-2个对象重新调整, …如此反复,最后得到全部排序好的对象序列。 * 堆排序算法分析: 时间效率: O(nlog2n)。 因为整个排序过程中需要调用n-1次HeapAdjust( )算法,而算法本身耗时为log2n; 空间效率:O(1)。仅在第二个for循环中交换记录

文档评论(0)

1亿VIP精品文档

相关文档