Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void mergeSort(int[] arr, int left, int right) {
- if (left < right) {
- int mid = (left + right) / 2;
- mergeSort(arr, left, mid);
- mergeSort(arr, mid + 1, right);
- merge(arr, left, mid, right);
- }
- }
- public static void merge(int[] arr, int left, int mid, int right) {
- int i = left, j = mid + 1, length = right - left + 1;
- int[] temp = new int[length];
- int k = 0;
- while (i <= mid && j <= right) {
- if (arr[i] < arr[j])
- temp[k++] = arr[i++];
- else
- temp[k++] = arr[j++];
- }
- while (j <= right)
- temp[k++] = arr[j++];
- while (i <= mid)
- temp[k++] = arr[i++];
- for (k = 0; k < length; k++) {
- arr[left++] = temp[k];
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement