Guest User

Untitled

a guest
Dec 26th, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.38 KB | None | 0 0
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5.  
  6. void merge(long long arr[], int l, int m, int r)
  7. {
  8.     int i, j, k;
  9.     int n1 = m - l + 1;
  10.     int n2 =  r - m;
  11.  
  12.    
  13.     long long L[n1], R[n2];
  14.  
  15.  
  16.     for (i = 0; i < n1; i++)
  17.         L[i] = arr[l + i];
  18.     for (j = 0; j < n2; j++)
  19.         R[j] = arr[m + 1+ j];
  20.  
  21.     i = 0;
  22.     j = 0;
  23.     k = l;
  24.     while (i < n1 && j < n2)
  25.     {
  26.         if (L[i] <= R[j])
  27.         {
  28.             arr[k] = L[i];
  29.             i++;
  30.         }
  31.         else
  32.         {
  33.             arr[k] = R[j];
  34.             j++;
  35.         }
  36.         k++;
  37.     }
  38.  
  39.    
  40.     while (i < n1)
  41.     {
  42.         arr[k] = L[i];
  43.         i++;
  44.         k++;
  45.     }
  46.  
  47.    
  48.     while (j < n2)
  49.     {
  50.         arr[k] = R[j];
  51.         j++;
  52.         k++;
  53.     }
  54. }
  55.  
  56.  
  57. void mergeSort(long long arr[], int l, int r)
  58. {
  59.     if (l < r)
  60.     {
  61.        
  62.         int m = l+(r-l)/2;
  63.  
  64.         mergeSort(arr, l, m);
  65.         mergeSort(arr, m+1, r);
  66.  
  67.         merge(arr, l, m, r);
  68.     }
  69. }
  70.  
  71. void printArray(long long A[], int size)
  72. {
  73.     int i;
  74.     for (i=0; i < size; i++)
  75.        cout<<A[i]<<" ";
  76.  
  77. }
  78.  
  79. int main()
  80. {
  81.     int n;
  82.     cin>>n;
  83.    
  84.   long long arr[n];
  85.   for(int i = 0; i < n; i++)
  86.     cin>>arr[i];
  87.  
  88.     mergeSort(arr, 0, n - 1);
  89.  
  90.    
  91.     printArray(arr, n);
  92.     return 0;
  93. }
Add Comment
Please, Sign In to add comment