Start Coding Now
⚙️ Algorithm Programsadvanced1 methods

Merge Sort in Java - Recursive

Java Program to implement Merge Sort algorithm using recursion.

Last updated: 11 January 2026

Method 1: Recursive Implementation

Divide and conquer approach.

public class MergeSort {
    void merge(int arr[], int l, int m, int r) {
        int n1 = m - l + 1;
        int n2 = r - m;

        int L[] = new int[n1];
        int R[] = new int[n2];

        for (int i = 0; i < n1; ++i) L[i] = arr[l + i];
        for (int j = 0; j < n2; ++j) R[j] = arr[m + 1 + j];

        int i = 0, j = 0, k = l;
        while (i < n1 && j < n2) {
            if (L[i] <= R[j]) {
                arr[k] = L[i];
                i++;
            } else {
                arr[k] = R[j];
                j++;
            }
            k++;
        }
        while (i < n1) arr[k++] = L[i++];
        while (j < n2) arr[k++] = R[j++];
    }

    void sort(int arr[], int l, int r) {
        if (l < r) {
            int m = l + (r - l) / 2;
            sort(arr, l, m);
            sort(arr, m + 1, r);
            merge(arr, l, m, r);
        }
    }

    public static void main(String args[]) {
        int arr[] = {12, 11, 13, 5, 6, 7};
        new MergeSort().sort(arr, 0, arr.length - 1);
        for(int x: arr) System.out.print(x + " ");
    }
}
Output:
5 6 7 11 12 13

Explanation

Recursively divide array into halves, sort them and then merge sorted halves.

Frequently Asked Questions

Try This Program

Copy this code and run it in our free online Java compiler.

Open Java Compiler