题解 | #有序序列合并#
https://www.nowcoder.com/practice/a9e943b0dab142759807d0cfb6863897
void sort(int* arr1,int* arr2,int* help,int n,int m){ int p1=0,p2=0,i=0; //p1,p2当作下标指针 while(p1<n&&p2<m){ //判断p1,p2是否越界 help[i++]=arr1[p1]<arr2[p2]?arr1[p1++]:arr2[p2++]; //将arr1[p1]和arr2[p2]中较小的拷贝给help[i] } while(p1<n) help[i++]=arr1[p1++]; while(p2<m) help[i++]=arr2[p2++]; } int main(){ int n,m; scanf("%d%d",&n,&m); int arr1[1000],arr2[1000]; int help[2000]; int i=0; for(i=0;i<n;i++) scanf("%d",&arr1[i]); for(i=0;i<m;i++) scanf("%d",&arr2[i]); sort(arr1,arr2,help,n,m); for(i=0;i<m+n;i++) printf("%d ",help[i]); return 0; }