#include<stdio.h>
void merge(int a[],int b[],int low,int mid,int high)
{
int h,i,j,k;
mid=(low+high)/2;
h=low;i=low;j=mid+1;
while(h<=mid&&j<=high)
{
if(a[h]<=a[j])
{b[i]=a[h];h=h+1;}
else
{b[i]=a[j];j=j+1;}
i=i+1;
}
if(h>mid)
for(k=j;k<=high;k++){b[i]=a[k];i=i+1;}
else
for(k=h;k<=mid;k++){b[i]=a[k];i=i+1;}
for(k=low;k<=high;k++)a[k]=b[k];
}
void mergesort(int a[],int low,int high)
{
int mid;
int b1[10]; //申请一个空数组,用来临时存储已排好序的数字
if(low<high)
{
mid=(low+high)/2;
mergesort(a,low,mid);
mergesort(a,mid+1,high);
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余1页未读,立即下载