Cod sursa(job #1049264)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 7 decembrie 2013 09:57:19
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 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)
        return;

    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;
}