PTA 6 您所在的位置:网站首页 实现从小到大排序的函数 PTA 6

PTA 6

2024-02-20 01:37| 来源: 网络整理| 查看: 265

本题要求实现堆排序中的筛选函数,待排序列的长度1 KeyType *elem; /*elem[0]一般作哨兵或缓冲区*/ int Length; }SqList; typedef SqList HeapType; void CreatSqListHeapType *L);/*待排序列建立,由裁判实现,细节不表*/ void HeapAdjust( HeapType H, int s, int m); void HeapSort( HeapType H); int main() { HeapType L; int i; CreatSqList(&L); HeapSort(L); for(i=1;i /*堆顺序表H进行堆排序*/ int i; KeyType rc; /*建立初始堆*/ for( i=H.Length/2;i>0; i--) { HeapAdjust(H, i, H.Length); } for(i=H.Length;i>1;i--) { rc=H.elem[1]; H.elem[1]=H.elem[i]; H.elem[i]=rc; HeapAdjust(H, 1, i-1); } } /*你的代码将被嵌在这里 */ 输入样例:

第一行整数表示参与排序的关键字个数。第二行是关键字值 例如:

10 5 2 4 1 8 9 10 12 3 6 输出样例:

输出由小到大的有序序列,每一个关键字之间由空格隔开,最后一个关键字后有一个空格。

1 2 3 4 5 6 8 9 10 12 实现代码: void HeapAdjust( HeapType H, int s, int m){ //假设r[s+1..m]已经是堆,将r[s..m]调整为以r[s]为根的大根堆 KeyType rc; int j; rc=H.elem[s]; for(j=2*s;j


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有