Advertisement
elwinc2799

Untitled

Apr 27th, 2021
1,143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. void merge(char arr[], int l, int m, int r) //001,
  2. {
  3.     int i, j, k;
  4.     int n1 = m - l + 1;
  5.     int n2 =  r - m;
  6.  
  7.     char L[n1], R[n2];
  8.  
  9.     for (i = 0; i < n1; i++)
  10.         L[i] = arr[l + i];
  11.     for (j = 0; j < n2; j++)
  12.         R[j] = arr[m + 1+ j];
  13.  
  14.     i = 0; // Initial index of first subarray
  15.     j = 0; // Initial index of second subarray
  16.     k = l; // Initial index of merged subarray
  17.     while (i < n1 && j < n2)
  18.     {
  19.         comparisons++;
  20.         if (int(L[i]) >= int(R[j]))
  21.         {
  22.             arr[k] = L[i];
  23.             i++;
  24.         }
  25.         else
  26.         {
  27.             arr[k] = R[j];
  28.             j++;
  29.         }
  30.         k++;
  31.     }
  32.  
  33.     while (i < n1)
  34.     {
  35.         arr[k] = L[i];
  36.         i++;
  37.         k++;
  38.     }
  39.  
  40.     while (j < n2)
  41.     {
  42.         arr[k] = R[j];
  43.         j++;
  44.         k++;
  45.     }
  46.     //cout << "Run Details:" <<endl;    
  47.     //printArray(L,n1);
  48.     //printArray(R,n2);
  49.     //cout << "Comparisons = " << comparisons << endl;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement