0% 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.

Uploaded by

Sanket Kalekar
Copyright
© © All Rights Reserved
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% 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.

Uploaded by

Sanket Kalekar
Copyright
© © All Rights Reserved
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 };

System.out.println("Given array is");


printArray(arr);

sort(arr, 0, arr.length - 1);

System.out.println("\nSorted array is");


printArray(arr);
}
}

You might also like