C Programs | IT Developer
IT Developer

C Programs



Share with a Friend

Arrays in C

Merge two sorted arrays

C Program: Merge Two Sorted Arrays (Sorted Merge)

C

#include <stdio.h>

 

int main() {

    int arr1[100], arr2[100], merged[200];

    int n1, n2, i = 0, j = 0, k = 0;

 

    // Input size of first array

    printf("Enter number of elements in first sorted array: ");

    scanf("%d", &n1);

 

    // Input elements of first sorted array

    printf("Enter %d elements for first sorted array (ascending order):\n", n1);

    for (i = 0; i < n1; i++) {

        scanf("%d", &arr1[i]);

    }

 

    // Input size of second array

    printf("Enter number of elements in second sorted array: ");

    scanf("%d", &n2);

 

    // Input elements of second sorted array

    printf("Enter %d elements for second sorted array (ascending order):\n", n2);

    for (j = 0; j < n2; j++) {

        scanf("%d", &arr2[j]);

    }

 

    // Merge both arrays in sorted order

    i = 0; j = 0; k = 0;

    while (i < n1 && j < n2) {

        if (arr1[i] < arr2[j]) {

            merged[k++] = arr1[i++];

        } else {

            merged[k++] = arr2[j++];

        }

    }

 

    // Copy remaining elements

    while (i < n1)

        merged[k++] = arr1[i++];

    while (j < n2)

        merged[k++] = arr2[j++];

 

    // Display merged sorted array

    printf("\nMerged sorted array:\n");

    for (i = 0; i < k; i++) {

        printf("%d ", merged[i]);

    }

 

    printf("\n");

    return 0;

}

Output

 
INPUT :
Enter number of elements in first sorted array: 4
Enter 4 elements for first sorted array:
1 3 5 7
Enter number of elements in second sorted array: 4
Enter 4 elements for second sorted array:
2 4 6 8

OUTPUT :
Merged sorted array:
1 2 3 4 5 6 7 8

Explanation

  1. Both arrays (arr1, arr2) are assumed to be sorted in ascending order.
  2. The program uses two pointers i and j to traverse the arrays simultaneously.
  3. It compares elements and places the smaller one in the merged
  4. After one array is exhausted, remaining elements of the other are appended.