关于的合并排序的一下问题

img



#include<stdio.h>
#include<stdlib.h>
int main()
{
#define M (10)
#define N (5)
    
    int a[M]={1,2,5,9,9,12,54,56,89,100};
    int b[N]={1,2,3,4,102};
    int c[M+N];
    
    for(int i=0;i<M;++i)
        printf("%d ",a[i]);
    printf("\n");
    
    for(int i=0;i<N;++i)
        printf("%d ",b[i]);
    printf("\n");
    
    int i=0,j=0,k=0;
    while(i<M && j<N)
    {
        if(a[i]<=b[j])
        {
            c[k++]=a[i++];
        }else{
            c[k++]=b[j++];
        }
    }
    while(i<M)
        c[k++]=a[i++];
    
    while(j<N)
        c[k++]=b[j++];
    
    for(int i=0;i<M+N;++i)
        printf("%d ",c[i]);
    printf("\n");
    
    return 0;
}