Advertisement
Mihai_Preda

Untitled

Apr 16th, 2021
261
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.90 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3.  
  4. using namespace std;
  5.  
  6. void mergesort(int v[], int st, int dr)
  7. {
  8.     if(st == dr)
  9.         return;
  10.     int mid = (st + dr) / 2;
  11.  
  12.     mergesort(v, st, mid);
  13.     mergesort(v, mid+1, dr);
  14.  
  15.     int t[dr-st+1], k, i, j;
  16.     i = st;
  17.     j = mid+1;
  18.     for(k = 0; i <= mid && j <= dr; k++)
  19.     {
  20.         if(v[i] < v[j])
  21.         {
  22.             t[k] = v[i];
  23.             i++;
  24.         }
  25.         else
  26.         {
  27.             t[k] = v[j];
  28.             j++;
  29.         }
  30.     }
  31.     for(int s = i; s <= mid; s++)
  32.         t[k++] = v[s];
  33.     for(int s = j; s <= dr; s++)
  34.         t[k++] = v[s];
  35.  
  36.     for(int s = 0; s < k; s++)
  37.         v[st+s] = t[s];
  38. }
  39.  
  40. int main()
  41. {
  42.     int n, v[1005];
  43.     cin >> n;
  44.     for(int i = 0; i < n; i++)
  45.         cin >> v[i];
  46.     mergesort(v, 0, n-1);
  47.  
  48.     for(int i = 0; i < n; i++)
  49.         cout << v[i] << " ";
  50.     return 0;
  51. }
  52.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement