Advertisement
sazid_iiuc

Untitled

May 21st, 2020
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void merge(int arr[], int left, int mid, int right)
  5. {
  6.     int size1 = mid - left + 1;
  7.     int size2 = right - mid;
  8.  
  9.     int left_array[size1], right_array[size2];
  10.  
  11.     for (int i = 0; i < size1; i++)
  12.     {
  13.         left_array[i] = arr[left + i];
  14.     }
  15.  
  16.     for (int i = 0; i < size2; i++)
  17.     {
  18.         right_array[i] = arr[mid + 1 + i];
  19.     }
  20.  
  21.     int i = 0, j = 0, k = left;
  22.    
  23.     while (i < size1 && j < size2)
  24.     {
  25.         if (left_array[i] <= right_array[j])
  26.         {
  27.             arr[k] = left_array[i];
  28.             i++;
  29.         }
  30.         else
  31.         {
  32.             arr[k] = right_array[j];
  33.             j++;
  34.         }
  35.         k++;
  36.     }
  37.  
  38.     while (i < size1)
  39.     {
  40.         arr[k] = left_array[i];
  41.         i++;
  42.         k++;
  43.     }
  44.  
  45.     while (j < size2)
  46.     {
  47.         arr[k] = right_array[size2];
  48.         j++;
  49.         k++;
  50.     }
  51. }
  52.  
  53. void mergesort(int arr[], int left, int right)
  54. {
  55.     if (left < right)
  56.     {
  57.         int mid = left + (right - left) / 2;
  58.  
  59.         mergesort(arr, left, mid);
  60.         mergesort(arr, mid + 1, right);
  61.         merge(arr, left, mid, right);
  62.     }
  63. }
  64.  
  65. main()
  66. {
  67.     int size;
  68.     cin >> size;
  69.  
  70.     int input_array[size];
  71.  
  72.     for (int i = 0; i < size; i++)
  73.     {
  74.         cin >> input_array[i];
  75.     }
  76.  
  77.     mergesort(input_array, 0, size-1);
  78.  
  79.     for (int i = 0; i < size; i++)
  80.     {
  81.         cout << input_array[i] << "\t";
  82.     }
  83. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement