归并排序出现数字比较奇怪

用了归并排序的代码,但是数组的数组排序后就特别奇怪,不知道怎么回事


#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;
}

img