Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
984 B
4
Indexable
Never
// MergeSort

package abc;

public class MergeSort {
	public static void main(String[] args) {
		int[] arr = { 12, 11, 13, 5, 6, 7 };
		int n = arr.length;
		mergeSort(arr, 0, n - 1);
		for (int i = 0; i < n; i++)
			System.out.print(arr[i] + " ");
	}

	public static void mergeSort(int[] a, int l, int r) {
		if (l < r) {
			int m = (l + r - 1) / 2;
			mergeSort(a, l, m);
			mergeSort(a, m + 1, r);
			merge(a, l, m, r);
		}
	}

	public static 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;
		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++;
		}

		while (i < n1) {
			arr[k] = L[i];
			i++;
			k++;
		}

		while (j < n2) {
			arr[k] = R[j];
			j++;
			k++;
		}

	}
}