/*归并排序

/*归并排序
    即将两个都升序(或降序)排列的数据合并
成一个仍案原序列排列的序列。
例子1、有一个含有6个数据升序序列和一个含有4个数据
的升序序列,将二者合并成一个含有10个数据的额升序序列
*/
#include<stdio.h>
#define m 6
#define n 4
int main(int argc,char const *argv[])
{
    int a[m]={-3,6,19,26,68,100};
    int b[n]={8,10,12,22};
    int i,j,k,c[m+n];
    i=j=k=0;
    while(i<m&&j<n)//将a、b数组中较小的数依次存放到c数组中
    {
        if(a[i]<b[i])
        {
            c[k]=a[i];
            i++;
        }else
        {
            c[k]=b[j];
            j++;
        }
        k++;
        while(i>=m&&j<n)
        {
            c[k]=b[i];
            k++;
            j++;
        }
        while(j>=n&&i<m)
        {
            c[k]=a[i];
            k++;
            i++;
        }
    }
    for(i=0;i<m+n;i++)
    {
        printf("%d ",c[i]);
    }
    return 0;
}
//-3 6 8 10 12 22 19 26 68 100

原文地址:https://www.cnblogs.com/lijianmin6/p/10398657.html