Advertisement
YORDAN2347

ClassMergeSort

Dec 11th, 2020 (edited)
785
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.57 KB | None | 0 0
  1. //https://pastebin.com/hy6Q7DwU  -> MergeSortMain
  2. package MergeSort18313;
  3.  
  4. public class DivideAndCompare {
  5.     void merge(int arr[], int left, int mid, int right)
  6.     {
  7.  
  8.         int l = mid - left + 1;
  9.         int r = right - mid;
  10.  
  11.         int LeftArray[] = new int [l];
  12.         int RightArray[] = new int [r];
  13.  
  14.         for (int i=0; i < l; ++i)
  15.             LeftArray[i] = arr[left + i];
  16.         for (int j=0; j < r; ++j)
  17.             RightArray[j] = arr[mid + 1+ j];
  18.         //split to 2 new arrays;
  19.  
  20.         int i = 0, j = 0;
  21.         int k = left;
  22.         while (i<l && j<r)
  23.         {
  24.             if (LeftArray[i] <= RightArray[j])
  25.             {
  26.                 arr[k] = LeftArray[i];
  27.                 i++;
  28.             }
  29.             else
  30.             {
  31.                 arr[k] = RightArray[j];
  32.                 j++;
  33.             }
  34.             k++;
  35.         }
  36.         //compare the arrays and checking higher num
  37.  
  38.         while (i<l)
  39.         {
  40.             arr[k] = LeftArray[i];
  41.             i++;
  42.             k++;
  43.         }
  44.         //checking if left array is shorter than right ones
  45.  
  46.         while (j<r)
  47.         {
  48.             arr[k] = RightArray[j];
  49.             j++;
  50.             k++;
  51.         }
  52.         //checking if right array is shorter than left ones
  53.         //end of merge method
  54.     }
  55.  
  56.     public void Sort(int arr[], int l, int r)
  57.     {
  58.         if (l < r)
  59.         {
  60.             int mid = (l + r)/2; //setting the mid index
  61.             Sort(arr, l, mid);
  62.             Sort(arr , mid+1, r);
  63.             merge(arr, l, mid, r);
  64.         }
  65.     }
  66. }
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement