Cod sursa(job #1691474)

Utilizator petru.cehanCehan Petru petru.cehan Data 18 aprilie 2016 15:00:12
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int n, a[500005], b[500005];

void Read(){
    fin >> n;
    for(int i = 1 ; i <= n ; ++ i)
            fin >> a[i];
}

void mergeSort(int l, int r){
    if(l == r)
        return ;
    int m = (l+r)/2;
    mergeSort(l,m);
    mergeSort(m+1,r);
    for(int i = l, j = m+1, k = l; i <= m || j <= r; ){
        if (j > r || (i <= m && a[i] < a[j])){
            b[k++] = a[i++];
        }
        else
            b[k++] = a[j++];
    }
    for(int i = l;  i <= r; ++ i)
         a[i] = b[i];
}

int main()
{
   Read();
   mergeSort(1,n);
   for(int i = 1 ; i <= n ;++ i)
        fout << a[i] << " ";
}