Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int *temp;
- void merge(int tab[], int left, int middle, int right){
- int i, j;
- for (i = middle+1; i > left; i--){
- temp[i-1] = tab[i-1];
- }
- for (j = middle ; j < right; j++){
- temp[right + middle-j] = tab[j+1];
- }
- for (int k = left; k <= right; k++){
- if (temp[j] < temp[i])
- tab[k] = temp[j--];
- else
- tab[k] = temp[i++];
- }
- }
- void merge_sort(int tab[], int left, int right){
- if (right <= left) return;
- int middle = (left + right) / 2;
- merge_sort(tab, left, middle);
- merge_sort(tab, middle + 1, right);
- merge(tab, left, middle, right);
- }
- int main(int argc, char** argv) {
- int n ;
- cin >> n;
- int tab[n];
- for (int i = 0; i<n; i++){
- cin >> tab[i];
- }
- merge_sort(tab, 0, n - 1);
- for (int i = 0; i < n; i++){
- cout << tab[i] << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement