w3resource

Java: Merge elements of A with B by maintaining the sorted order

Java Array: Exercise-58 with Solution

Given two sorted arrays A and B of size p and q, write a Java program to merge elements of A with B by maintaining the sorted order i.e. fill A with first p smallest elements and fill B with remaining elements.

Example:
Input :
int[] A = { 1, 5, 6, 7, 8, 10 }
int[] B = { 2, 4, 9 }
Output:
Sorted Arrays:
A: [1, 2, 4, 5, 6, 7]
B: [8, 9, 10]

Sample Solution:

Java Code:

// Import necessary Java classes.
import java.util.Arrays;

// Define a class named 'solution'.
class solution
{
    // A method to merge two sorted arrays.
    public static void merge_sorted_arrays(int[] A, int p, int[] B, int q)
    {
        // Loop through the first array.
        for (int i = 0; i < p; i++)
        {
            if (A[i] > B[0])
            {
                // Swap elements if the current element in A is greater than the first element in B.
                int temp = A[i];
                A[i] = B[0];
                B[0] = temp;

                // Store the first element from B.
                int first_arr = B[0];
                int k;

                // Move elements in B to the right to insert first_arr in the correct position.
                for (k = 1; k < q && B[k] < first_arr; k++) {
                    B[k - 1] = B[k];
                }

                // Insert first_arr in the correct position in B.
                B[k - 1] = first_arr;
            }
        }
    }

    public static void main (String[] args)
    {
        int[] A = { 1, 5, 6, 7, 8, 10 };
        int[] B = { 2, 4, 9 };
        int p = A.length;
        int q = B.length;

        // Print the original arrays.
        System.out.println("Original Arrays:");
        System.out.println("A: " + Arrays.toString(A));
        System.out.println("B: " + Arrays.toString(B));

        // Merge the sorted arrays A and B.
        merge_sorted_arrays(A, p, B, q);

        // Print the sorted arrays A and B after merging.
        System.out.println("\nSorted Arrays:");
        System.out.println("A: " + Arrays.toString(A));
        System.out.println("B: " + Arrays.toString(B));
    }
}

Sample Output:

Original Arrays:
A: [1, 5, 6, 7, 8, 10]
B: [2, 4, 9]

Sorted Arrays:
A: [1, 2, 4, 5, 6, 7]
B: [8, 9, 10]

Flowchart:

Flowchart: Merge elements of A with B by maintaining the sorted order

Java Code Editor:

Previous: Write a Java program to check if a sub-array is formed by consecutive integers from a given array of integers.
Next: Write a Java program to find maximum product of two integers in a given array of integers.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://www.w3resource.com/java-exercises/array/java-array-exercise-58.php