Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- void mergesort(int v[], int st, int dr)
- {
- if(st == dr)
- return;
- int mid = (st + dr) / 2;
- mergesort(v, st, mid);
- mergesort(v, mid+1, dr);
- int t[dr-st+1], k, i, j;
- i = st;
- j = mid+1;
- for(k = 0; i <= mid && j <= dr; k++)
- {
- if(v[i] < v[j])
- {
- t[k] = v[i];
- i++;
- }
- else
- {
- t[k] = v[j];
- j++;
- }
- }
- for(int s = i; s <= mid; s++)
- t[k++] = v[s];
- for(int s = j; s <= dr; s++)
- t[k++] = v[s];
- for(int s = 0; s < k; s++)
- v[st+s] = t[s];
- }
- int main()
- {
- int n, v[1005];
- cin >> n;
- for(int i = 0; i < n; i++)
- cin >> v[i];
- mergesort(v, 0, n-1);
- for(int i = 0; i < n; i++)
- cout << v[i] << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement