用了归并排序的代码,但是数组的数组排序后就特别奇怪,不知道怎么回事
#include<stdio.h>
void Merge(int r[], int r1[], int s, int m, int t)
{
int i=0,j=m+1,k=s;
while(i<=m && j<=t)
{
if(r[i]<=r[j])
r1[k++] =r[i++];
else r1[k++]=r[j++];
}
while(i<=m)
r1[k++]=r[i++];
while(j<=t)
r[k++]=r[j++];
}
void MergeSort(int r[],int s,int t)
{
int m,r1[1000];
if(s==t)
return;
else
{
m=(s+t)/2;
MergeSort(r,s,m);
MergeSort(r,m+1,t);
Merge(r,r1,s,m,t);
for(int i=s;i<=t;i++)
{
r[i]=r1[i];
}
}
}
int main()
{
int r[] = {4, 7, 6, 5, 2, 1, 8, 2, 9, 1};
MergeSort(r,0,9);
for(int i=0;i<10;i++)
{
printf("%d ",r[i]);
}
return 0;
}