You are here: Home / Topics / Merge sort example in Java

Merge sort example in Java

Filed under: Java on 2023-08-23 06:47:40

// Program to Implement Merge Sort

import java.util.Scanner;

public class MergeSort 
{
   /* Merge Sort function */
   public static void sort(int[] a, int low, int high) 
   {
       int N = high - low;         
       if (N <= 1) 
           return; 
       int mid = low + N/2;

       // recursively sort 
       sort(a, low, mid); 
       sort(a, mid, high);

       // merge two sorted subarrays
       int[] temp = new int[N];
       int i = low, j = mid;
       for (int k = 0; k < N; k++) 
       {
           if (i == mid)  
               temp[k] = a[j++];
           else if (j == high) 
               temp[k] = a[i++];
           else if (a[j]<a[i]) 
               temp[k] = a[j++];
           else 
               temp[k] = a[i++];
       }    
       for (int k = 0; k < N; k++) 
           a[low + k] = temp[k];         
   }

   public static void main(String[] args) 
   {
       Scanner scan = new Scanner( System.in );        
      
       int n, i;

       System.out.println("Enter number of integer elements");
       n = scan.nextInt();

       int arr[] = new int[ n ];

       System.out.println("\nEnter "+ n +" integer elements");

       for (i = 0; i < n; i++)
           arr[i] = scan.nextInt();

       sort(arr, 0, n);

       System.out.println("\nElements after sorting ");        
       for (i = 0; i < n; i++)
           System.out.print(arr[i]+" ");            
       System.out.println();            
   }    
}


Output:

Merge Sort Test

Enter number of integer elements
20

Enter 20 integer elements
605 514 864 711 232 664 674 357 161 695 111 508 262 879 832 849 457 357 185 974

Elements after sorting
111 161 185 232 262 357 357 457 508 514 605 664 674 695 711 832 849 864 879 974


About Author:
J
Java     View Profile
Hi, I am using MCQ Buddy. I love to share content on this website.