题解 | 有序序列合并

#include <stdio.h>

int main() {
    int n,m,a,b;
    scanf("%d %d",&n,&m);
    int arr1[n],arr2[m];
    for(int i = 0;i<n;i++){
        scanf("%d ",&a);
        arr1[i]=a;
    }
    for(int j = 0;j<m;j++){
        scanf("%d ",&b);
        arr2[j]=b;
    }   //输入数组;
  
    int arr[n+m];
    int i=0,j=0,count=0;
    while(1){
        if(arr1[i]<arr2[j]){
            arr[count]=arr1[i];
            count++;
            i++;
        }
        else{
            arr[count]=arr2[j];
            j++;
            count++;
        }
	  //判断某一数组是否读取完整
        if(i==n){
            for(int x=j;x<m;x++){
                arr[count]=arr2[x];
                count++;
            }
            break;
        }
        else if(j==m){
            for(int y=i;y<n;y++){
                arr[count]=arr1[y];
                count++;
            }
            break;
        }
    }
    for(int k=0;k<n+m;k++){
        printf("%d ",arr[k]);
    }
    return 0;
}

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务