C语言中选择法排序的应用实现(3)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

C语言中选择法排序的应用实现(3)

     如果新堆的堆顶元素不能满足堆的性质,就需要把当前无序区(A1,A2,。。。。。。An-1)重新调整,转换成新堆,然后再把堆顶元素与无序区倒数第一个元素替换,得到新的无序区{A1,A2。。。。A(n-2)}和新的有序区{A(n-1),An}。循环上述步骤直到初始序列完全变为有序序列。来*自-优=尔,论:文+网www.youerw.com

    (3) 操作进程如下:

     初始化堆:将A[1。。。。。。n]构造为堆;

 把堆顶元素A[1]与最后一个元素A[n]替换,把剩下的无序区(A1,A2,。。。。。。An。1)调整成新的堆。

所以执行堆排序的最主要的两个步骤一个是构建初始堆,一个是调整新堆。

下面举例说明:

给出初始序列a[]={16,7,3,20,17,8},用堆选择排序法从小到大排序。

(责任编辑:qin)