Advertisement
Guest User

Untitled

a guest
Feb 20th, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.06 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3. #include <iomanip>
  4. #include <vector>
  5. #include <cmath>
  6. #include <algorithm>
  7. using namespace std;
  8.  
  9. int n;
  10. vector<int> unsort(n);
  11.  
  12. void merge(int l, int mid, int r)
  13. {
  14.     int ptl = 0, ptr = mid - l + 1;
  15.     vector<int> unstd(0);
  16.     for (int i = l; i <= r; i++)
  17.     {
  18.         unstd.push_back(unsort[i]);
  19.     }
  20.  
  21.     for (int i = l; i <= r; i++)
  22.     {
  23.         if (unstd[ptl] <= unstd[ptr])
  24.         {
  25.             unsort[i] = unstd[ptl];
  26.             if (ptl == mid - l)
  27.             {
  28.                 unstd[ptl] = 1000000000;
  29.                 continue;
  30.             }
  31.             ptl++;
  32.         }
  33.         else
  34.         {
  35.             unsort[i] = unstd[ptr];
  36.             if (ptr == r - l)
  37.             {
  38.                 unstd[ptr] = 1000000000;
  39.                 continue;
  40.             }
  41.             ptr++;
  42.  
  43.         }
  44.     }
  45. }
  46.  
  47. void sort(int l, int r)
  48. {
  49.     if (l < r)
  50.     {
  51.         int mid = (l + r) / 2;
  52.  
  53.         sort(l, mid);
  54.         sort(mid + 1, r);
  55.  
  56.         merge(l, mid, r);
  57.     }
  58. }
  59.  
  60. int main()
  61. {
  62.     cin >> n;
  63.  
  64.     unsort = vector<int>(n);
  65.  
  66.     for (int i = 0; i < n; i++)
  67.     {
  68.         cin >> unsort[i];
  69.     }
  70.  
  71.     sort(0, unsort.size() - 1);
  72.  
  73.     cout << endl;
  74.  
  75.     for (int i = 0; i < unsort.size(); i++)
  76.     {
  77.         cout << unsort[i] << endl;
  78.     }
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement