Write a program to merge two sorted arrays.


Input


#include <stdio.h>
#define MAX_SIZE 100

int main()
{
    int arr1[MAX_SIZE], arr2[MAX_SIZE], mergeArray[MAX_SIZE * 2];
    int size1, size2, mergeSize;
    int index1, index2, mergeIndex;
    int i;
    
    printf("Enter the size of first array : ");
    scanf("%d", &size1);

    printf("Enter the elements in first array : ");
    for(i=0; i<size1; i++)
    {
        scanf("%d", &arr1[i]);
    }

    printf("\nEnter the size of second array : ");
    scanf("%d", &size2);

    printf("Enter the elements in second array : ");
    for(i=0; i<size2; i++)
    {
        scanf("%d", &arr2[i]);
    }

    mergeSize = size1 + size2;

    index1 = 0;
    index2 = 0;
    for(mergeIndex=0; mergeIndex < mergeSize; mergeIndex++)
    {
        if(index1 >= size1 || index2 >= size2)
        {
            break;
        }


        if(arr1[index1] < arr2[index2])
        {
            mergeArray[mergeIndex] = arr1[index1];
            index1++;
        }
        else
        {
            mergeArray[mergeIndex] = arr2[index2];
            index2++;
        }
    }
    while(index1 < size1)
    {
        mergeArray[mergeIndex] = arr1[index1];
        mergeIndex++;
        index1++;
    }
    while(index2 < size2)
    {
        mergeArray[mergeIndex] = arr2[index2];
        mergeIndex++;
        index2++;
    }
    printf("\nThe merged sorted array is :\n");
    for(i=0; i<mergeSize; i++)
    {
        printf("%d\t\n",mergeArray[i]);
    }

    return 0;
}




Output


Enter the size of first array : 2
Enter the elements in first array : 2
5

Enter the size of second array : 3
Enter the elements in second array : 2
3
4

The merged sorted array is :
2   
2   
3   
4   
5

No comments:

Post a Comment