Answers for "merge sorted"

0

merge sort

//recursive merge sort

	public static void mergeSort(int[] a){
		mergeSort(a, 0, a.length-1);
	}

	private static void mergeSort(int[] a, int i, int j){
		if (i == j)
			return;
		int mid = (i + j)/2;
		mergeSort(a, i, mid);
		mergeSort(a, mid + 1, j);
		merge(a, i, j);
	}

	private static void merge(int[] a, int i, int j){
		int[] temp = new int[j - i + 1];
		int mid = (i + j)/2;
		int left = i, right = mid + 1, k = 0;
		while (left <= mid && right <= j && k < temp.length){
			if (a[left] < a[right])
				temp[k++] = a[left++];
			else
				temp[k++] = a[right++];
		}
		while (left <= mid)
			temp[k++] = a[left++];
		while (right <= j)
			temp[k++] = a[right++];

		for (int m = 0; m < temp.length; m++)
			a[i + m] = temp[m];
	}
Posted by: Guest on April-17-2022

Python Answers by Framework

Browse Popular Code Answers by Language