Advertisement
Guest User

Untitled

a guest
Oct 18th, 2020
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.88 KB | None | 0 0
  1.     void merge(int arr[],int l[], int[] r, int left, int right)
  2.     {
  3.         int i = 0, j = 0, k = 0;
  4.         while (i < left && j < right)
  5.         {
  6.             if (l[i] <= r[j]) {
  7.                 arr[k++] = l[i++];
  8.             }
  9.             else {
  10.                 arr[k++] = r[j++];
  11.             }
  12.         }
  13.         while (j < right) {
  14.             arr[k++] = r[j++];
  15.         }
  16.     }
  17.  
  18.     public int[] mergeSort(int arr[], int n)
  19.     {
  20.         if (n < 2) return arr;
  21.  
  22.         int middle = n / 2;
  23.  
  24.         int[] l = new int[middle];
  25.         int[] r = new int[n - middle];
  26.  
  27.         for (int i = 0; i < middle; i++)
  28.             l[i] = arr[i];
  29.  
  30.         for (int i = middle; i < n; i++)
  31.             r[i - middle] = arr[i];
  32.  
  33.         mergeSort(l, middle);
  34.         mergeSort(r, n - middle);
  35.  
  36.         merge(arr, l, r, middle, n - middle);
  37.  
  38.         return arr;
  39.     }
  40.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement