题解 | #有序序列合并#
有序序列合并
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
#include <stdio.h>
#include<stdlib.h>
int cmp(const void *p1,const void* p2)
{
return *(int*)p1-*(int*)p2;
}
int main() {
int m,n;
scanf("%d %d",&n,&m);
int arr1[n],arr2[m];
int count= 0;
int arr3[m+n];
for(int i = 0;i<n;i++)
{
scanf("%d",&arr1[i]);
}
for(int i = 0;i<m;i++)
{
scanf("%d",&arr2[i]);
}
int i = 0,j = 0;
while(i<n&&j<m)
{
if(arr1[i]<=arr2[j])
{
arr3[count++]=arr1[i++];
}else {
arr3[count++]=arr2[j++];
}
while(i<n)
arr3[count++]=arr1[i++];
while(j<m)
arr3[count++]=arr2[j++];
qsort(arr3,m+n,sizeof(int),cmp);
for(i= 0 ;i<m+n;i++)
printf("%d ",arr3[i]);
}
return 0;
}
哔哩哔哩公司氛围 724人发布