全文预览

(中央电大)数据结构实验报告6

上传者:苏堤漫步 |  格式:doc  |  页数:5 |  大小:0KB

文档介绍
NODEР{Р?int date;Р};Рvoid heapshift(struct NODE a[],int i,int n)Р{Р?struct NODE temp;Р?int j;Р?temp=a[i];Р?j=2*i;Р?while(j<n)Р?{Р if(j+1<n && a[j].date >a[j+1].date )Р j++;Р if(temp.date >a[j].date )Р {Р a[i]=a[j];Р i=j;Р j=2*i;Р }Р elseР break;Р?}Р?a[i]=temp;Р}Рvoid heapsort(struct NODE a[],int n)Р{Р?int i;Р?struct NODE temp;Р?for(i=n/2;i>=1;i--)Р heapshift(a,i,n);Р?for(i=n;i>1;i--)Р?{Р temp=a[1];Р a[1]=a[i];Р a[i]=temp;Р heapshift(a,1,i-1);Р?}Р}Рvoid main()Р{Р?struct NODE b[N]={40,80,65,100,14,30,55,50};Р?struct NODE a[N];Р?int i;Р?printf("初始数据序列:");Р?for(i=0;i<N;i++){Р a[i+1].date =b[i].date ;Р?}Р?for(i=1;i<=N;i++){Р printf("%d ",a[i].date);Р?}Р?printf("\n");Р?printf("\n");Р?heapsort(a,N);Р printf("堆排序后的数据序列:");Р?for(i=1;i<=N;i++){Р printf("%d ",a[i].date);Р?}Р?printf("\n");Р}Р程序运行结果如下:

收藏

分享

举报
下载此文档