```c++
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int b[10];
void merge(int a[],int start,int mid,int end)
{
//归并
if(start>end) return ;
for(int i=start;i<=end;i++)
b[i]=a[i];
int i,j,k;
i=start;
j=mid+1;
k=0;
while(i<=mid&&j<=end)
{
if(b[i]<b[j]) a[k++]=b[i++];
else a[k++]=b[j++];
}
while(i<=mid) a[k++]=b[i++];
while(j<=end) a[k++]=b[j++];
}
void mergesort(int a[],int i,int j)
{
if(i>j) return ;
int mid;
mid=(i+j)/2;
mergesort(a,i,mid);
mergesort(a,mid+1,j);
merge(a,i,mid,j);
}
int main()
{
int a[10]={1,5,9,8,6,3,2,4,7,10};
int i;
// srand(time(NULL));
// for(i=0;i<10;i++)
// {
// a[i]=rand()%10+1;
// }
//
// for(i=0;i<10;i++)
// printf("%d ",a[i]);
// printf("\n");
// fflush(stdout);
//归并排序
mergesort(a,0,9);
for(i=0;i<10;i++)
printf("%d ",a[i]);
}
```