public class MergeSort { public static void mergeSort(int[] arr, int left, int right, int[] temp) { if (left < right) { int mid = (left + right) / 2; mergeSort(arr, left, mid, temp); mergeSort(arr, mid + 1, right, temp); merge(arr, left, mid, right, temp); } } public static void merge(int[] arr, int left, int mid, int right, int[] temp) { int i = left; int j = mid + 1; int k = left; while (i <= mid && j <= right) { if (arr[i] <= arr[j]) { temp[k] = arr[i]; i++; } else { temp[k] = arr[j]; j++; } k++; } while (i <= mid) { temp[k] = arr[i]; i++; k++; } while (j <= right) { temp[k] = arr[j]; j++; k++; } for (i = left; i <= right; i++) { arr[i] = temp[i]; } } public static void main(String[] args) { int[] arr = {38, 27, 43, 3, 9, 82, 10}; int[] temp = new int[arr.length]; mergeSort(arr, 0, arr.length - 1, temp); System.out.print("Sorted array: "); for (int num : arr) { System.out.print(num + " "); } } }
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter