#include <stdio.h>
void Merge(int SR[],int TR[],int i,int m,int n)
{
int j,k,l;
for(j=m+1,k=i;i<=m && j<=n;k++)
{
if (SR[i]<SR[j])
TR[k]=SR[i++];
else
TR[k]=SR[j++];
}
if(i<=m)
{
for(l=0;l<=m-i;l++)
TR[k+l]=SR[i+l];
}
if(j<=n)
{
for(l=0;l<=n-j;l++)
TR[k+l]=SR[j+l];
}
}
void MSort(int SR[],int TR[],int s,int t,int TR2[])
{
if(s==t) TR[s]=SR[s];
else
{
int m=(s+t)/2;
MSort(SR,TR2,s,m,TR2);
MSort(SR,TR2,m+1,t,TR2);
Merge(TR2,TR,s,m,t);
}
}
void main()
{
int arr[10]={1,3,5,7,9,2,4,6,8,10};
int TR2[10]={0};
MSort(arr,arr,0,9,TR2);
int i=0;
for(;i<10;i++)
printf("%d\t",arr[i]);
printf("\n");
}