相关代码 |
|
算法 6.15 void HeapSort ( HeapType &H ) { // 对顺序表H进行堆排序。 for ( i=H.length/2; i>0; --i ) // 把H.r[1..H.length]建成大顶堆 HeapAdjust ( H, i, H.length ); w=H.r[1] ; H.r[1]= H.r[H.length]; H.r[H.length]=w; //交换"堆顶"和"堆底"的记录 for ( i=H.length-1; i>1; --i ) { HeapAdjust(H, 1, i); // 从根开始调整,将H.r[1..i] 重新调整为大顶堆 w=H.r[1]; H.r[1]=H.r[i]; H.r[i]=w; // 将堆顶记录和当前的"堆底"记录相互交换 // 使已有序的记录堆积到底部 } } // HeapSort
相关资源 |
|