1 / 4
文档名称:

C语言版数据结构归并排序.docx

格式:docx   大小:78KB   页数:4页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言版数据结构归并排序.docx

上传人:459972402 2019/6/20 文件大小:78 KB

下载得到文件列表

C语言版数据结构归并排序.docx

文档介绍

文档介绍:归并排序详细设计#include<>#include<>#include<>#define Max_Size 500typedefintKeyType;typedefintOtherType;typedefstruct{KeyTypekey;OtherTypeother_data;}RecordType;voidMerge(RecordTyper1[],intlow,intmid,inthigh,RecordTyper2[])/* 已知r1[low..mid] 和r1[mid+1..high] 分别按关键字有序排列,将它们合并成一个有序序列,存放在 r2[low..high]*/{intj,k;for(j=mid+1,k=low;low<=mid&&j<=high;++k)//将ri中的纪律由小到大的并入r2中{if(r1[low].key<=r1[j].key)r2[k]=r1[low++];elser2[k]=r1[j++];}while(low<=mid)//将剩余的ri[low..mid]复制到r2中r2[k++]=r1[low++];while(j<=high)r2[k++]=r1[j++];//将剩余的ri[j..mid]复制到r2中}/*Merge*/voidMSort(RecordTyper1[],intlow,inthigh,RecordTyper3[])/*r1[low..high] 经过排序后放在 r3[low..high] 中,r2[low..high]{为辅助空间*/intmid;RecordTyper4[500];//开设用于存放归并排序中间结果的辅助空间if(low==high)r3[low]=r1[low];else{mid=(low+high)/2;// 将r1[mid+1..high]MSort(r1,low,mid,r4);//MSort(r1,mid+1,high,r4);//r3[mid+1..high]Merge(r4,low,mid,high,r3);//序的r3[low..high]r1[low...high] 平 均 分 为 r1[low..mid] 和递归将r1[low..mid] 归并为有序的 r3[lo