Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- using namespace std;
- vector<int> merge(const vector<int> &a, const vector<int> &b)
- {
- int a_size = a.size();
- int b_size = b.size();
- vector<int> c(a_size + b_size);
- int i = 0, j = 0, k = 0;
- while(i<a_size||j<b_size)
- {
- if (j == b_size || (i < a_size && a[i] < b[j]))
- c[k++] = a[i++];
- else
- c[k++] = b[j++];
- }
- return c;
- }
- vector<int> mergeSort(const vector<int> &a, int l, int r)
- {
- int n = r-l;
- if (n <= 1)
- return vector<int> (a.begin()+l,a.begin()+r);
- int mid = (l + r) / 2;
- vector<int> a_l = mergeSort(a, l, mid);
- vector<int> a_r = mergeSort(a, mid, r);
- return merge(a_l, a_r);
- }
- int main()
- {
- int number_1;
- cin >> number_1;
- vector<int> array_1(number_1);
- for (auto& x : array_1)
- {
- cin >> x;
- }
- array_1 = mergeSort(array_1, 0, number_1);
- for (auto& x : array_1)
- {
- cout << x << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement