Skip to main content

SORT13





#include <stdio.h>
#define MAX 50000
void merge(int n1,int n2);
int arr1[MAX],arr2[MAX];
int main() {
     
    int n1,n2,i,j,t;   
    scanf("%d",&t);
    for(i=0;i<t;i++)
    {
          scanf("%d%d",&n1,&n2);  
          for(j=0;j<n1;j++)
          {
              scanf("%d",&arr1[j]);
          }
          for(j=0;j<n2;j++)
          {
              scanf("%d",&arr2[j]);
          }
          merge(n1,n2);
    }
    return 0;
}
void merge(int n1,int n2) 
{
    int n,i=0,j=0,k=0,arr3[n1+n2];
    while(j<n1 && k<n2)
    {
          if(arr1[j]>arr2[k])
          {
               arr3[i]=arr1[j];
               i++;
               j++;
          }
          else
          {
               arr3[i]=arr2[k];
               i++;
               k++;
          }
    }
    if(j>=n1)
    {
        while(k<n2)
        {
            arr3[i]=arr2[k];
            i++;
            k++;
        }
    }
    else
    {
        while(j<n1)
        {
            arr3[i]=arr1[j];
            i++;
            j++;
        }
    }
    n=n1+n2;
    for(i=0;i<n;i++)
    {
        printf("%d ",arr3[i]);
    }
    printf("\n");
}

Comments