Java Program to Merge Two Sorted Arrays

  • Write a java program to merge two sorted array sin one single array.

In this java program, we have to merge two sorted arrays into third array such that third array is also sorted. The size of the third array will be more than or equal to the sum of size of both given arrays.

For Example,
First Array : 1 3 5 7 9 11
Second Array : 2 4 6 8 10
Output Array : 1 2 3 4 5 6 7 8 9 10 11

Java program to merge two sorted array

package com.tcc.java.programs;

import java.util.Scanner;

/**
 * Java Program to merge two sorted array
 */
public class MergeSortedArray {

    public static void main(String[] args) {
        int fSize, sSize, i, j, k;
        int first[] = new int[100];
        int second[] = new int[100];
        int merged[] = new int[200];

        Scanner scanner = new Scanner(System.in);
        // Input First Array
        System.out.println("Enter Number of Elements in First Array");
        fSize = scanner.nextInt();
        System.out.println("Enter " + fSize + " Numbers");
        for (i = 0; i < fSize; i++) {
            first[i] = scanner.nextInt();
        }

        // Input Second Array
        System.out.println("Enter Number to Elements in Second Array");
        sSize = scanner.nextInt();
        System.out.println("Enter " + sSize + " Numbers");
        for (i = 0; i < sSize; i++) {
            second[i] = scanner.nextInt();
        }

        // Merge two array
        i = j = k = 0;
        while (i < fSize && j < sSize) {
            if (first[i] <= second[j]) {
                merged[k++] = first[i++];
            } else {
                merged[k++] = second[j++];
            }
        }

        if (i == fSize) {
            while (j < sSize)
                merged[k++] = second[j++];
        }

        if (j == sSize) {
            while (i < fSize)
                merged[k++] = first[i++];
        }

        System.out.println("Merged Array");
        for (i = 0; i < k; i++) {
            System.out.print(merged[i] + " ");
        }
    }
}
Output
Enter Number of Elements in First Array
5
Enter 5 Numbers
1 3 5 7 9
Enter Number to Elements in Second Array
4
Enter 4 Numbers
2 4 6 8
Merged Array
1 2 3 4 5 6 7 8 9