Cod sursa(job #2199549)

Utilizator FunnyStockyMihnea Andreescu FunnyStocky Data 28 aprilie 2018 10:54:53
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int N=500000;
int n,v[N+5],aux[N+5];
void Sort(int st,int dr){
    if(st==dr)
        return;
    int med=(st+dr)/2;
    Sort(st,med);
    Sort(med+1,dr);
    int p1=st,p2=med+1;
    for(int i=st;i<=dr;i++){
        if(p2==dr+1 || (p1!=med+1 && v[p1]<v[p2]))
            aux[i]=v[p1++];
        else
            aux[i]=v[p2++];
    }
    for(int i=st;i<=dr;i++)
        v[i]=aux[i];
}
int main(){
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    Sort(1,n);
    for(int i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}