#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void merge(int a[],int len1,int b[],int len2)
{
if(len1 <= 0 || len2 <= 0)
return;
int *c = (int *)malloc(sizeof(int) * (len1 + len2));
memset(c,0,sizeof(int) * (len1 + len2));
int i = 0;
int m = 0;
int n = 0;
while(m < len1 && n < len2)
{
if(a[m] < b[n])
{
c[i] = a[m];
m++;
}
else
{
c[i] = b[n];
n++;
}
i++;
}
if(m == len1)//说明是a先结束
{
for(;n < len2;n++)
{
c[i] = b[n];
i++;
}
}
else if(n == len2)//说明b先结束
{
for(;m < len1;m++)
{
c[i] = a[m];
i++;
}
}
printf("合并后的结果为:\n");
int k = 0;
for(;k < i;k++)
printf("%d ",c[k]);
printf("\n");
free(c);
}
int main()
{
int a[] = {1,3,4,7,12,13,17,43,52,110};
int b[] = {0,2,4,5,6,9,44};
merge(a,10,b,7);
}