This Java program implements the Merge Sort algorithm to sort an array of integers. It includes methods for merging two subarrays, sorting the array recursively, and printing the array. The main function demonstrates the sorting of a predefined array and outputs the sorted result.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
7 views2 pages
Bubble Sort
This Java program implements the Merge Sort algorithm to sort an array of integers. It includes methods for merging two subarrays, sorting the array recursively, and printing the array. The main function demonstrates the sorting of a predefined array and outputs the sorted result.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2
// Java program for Merge Sort
import java.io.*;
class GfG {
// Merges two subarrays of arr[].
// First subarray is arr[l..m] // Second subarray is arr[m+1..r] static void merge(int arr[], int l, int m, int r) { // Find sizes of two subarrays to be merged int n1 = m - l + 1; int n2 = r - m;
// Create temp arrays
int L[] = new int[n1]; int R[] = new int[n2];
// Copy data to temp arrays
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];
// Merge the temp arrays
// Initial indices of first and second subarrays
int i = 0, j = 0;
// Initial index of merged subarray array
int k = l; while (i < n1 && j < n2) { if (L[i] <= R[j]) { arr[k] = L[i]; i++; } else { arr[k] = R[j]; j++; } k++; }
// Copy remaining elements of L[] if any
while (i < n1) { arr[k] = L[i]; i++; k++; }
// Copy remaining elements of R[] if any
while (j < n2) { arr[k] = R[j]; j++; k++; } }
// Main function that sorts arr[l..r] using
// merge() static void sort(int arr[], int l, int r) { if (l < r) {
// Find the middle point
int m = l + (r - l) / 2;
// Sort first and second halves
sort(arr, l, m); sort(arr, m + 1, r);
// Merge the sorted halves
merge(arr, l, m, r); } }
// A utility function to print array of size n
static void printArray(int arr[]) { int n = arr.length; for (int i = 0; i < n; ++i) System.out.print(arr[i] + " "); System.out.println(); }
// Driver code public static void main(String args[]) { int arr[] = { 12, 11, 13, 5, 6, 7 };