Cod sursa(job #1049281)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 7 decembrie 2013 10:07:33
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,v[500011],c[500011];

void merge(int p,int u){
    int i,j,m;

    if (p < u){


        m = p+(u-p)/2;
        merge(p,m);
        merge(m+1,u);


        i=p,j=m+1;
        int k = p-1;
        while(i<=m && j<=u)
            if (v[i] < v[j])
                c[++k] = v[i++];
            else
                c[++k] = v[j++];


        for(;i<=m;i++)
            c[++k]=v[i];
        for(;j<=u;j++)
            c[++k]=v[j];

        for(i=p;i<=u;i++)
            v[i]=c[i];
    }
}

int main(void){
    register int i;

    f>>n;
    for(i=1;i<=n;i++)
        f>>v[i];

    merge(1,n);
    for(i=1;i<=n;i++)
        g<<v[i]<<" ";
    return 0;
}