文档介绍:归并排序详细设计#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