题解 | #有序序列合并#
有序序列合并
http://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
{
int m,n,i,j,k=0;
int arr[1000];
int arr1[1000];
scanf("%d %d",&n,&m);
for(j=0;j<n;j++)//初始化数组
{
scanf("%d",&arr1[j]);
}
for(i=0;i<m;i++)
{
scanf("%d",&arr[i]);
}
int *ret=malloc(sizeof(int)*(m+n));//开辟一个动态空间
i=j=0;
while(i<m&&j<n)
{
if(arr[i]>arr1[j])
{
ret[k++]=arr1[j];
j++;
}
else
{
ret[k++]=arr[i];
i++;
}
}
while(i<m)
{
ret[k++]=arr[i];
i++;
}
while(j<n)
{
ret[k++]=arr1[j];
j++;
}
for(i=0;i<m+n;i++)//打印
{
printf("%d ",ret[i]);
}
free(ret);
return 0;
}