Cod sursa(job #1280765)

Utilizator andrei1998xAndrei Ionut andrei1998x Data 2 decembrie 2014 14:09:49
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500001],c[500001],n,i,j,k;
void interclaseaza(int p,int m,int u)
{
    i=p;
    j=m+1;
    k=p-1;
    while (i<=m&&j<=u)
        if (v[i]<v[j])
            c[++k]=v[i++];
        else
            c[++k]=v[j++];
    for (;i<=n;i++)
        c[++k]=v[i];
    for (;j<=m;j++)
        c[++k]=v[i];
    for (i=p;i<=u;i++)
        v[i]=c[i];
}
void sorteaza (int p, int u){
    if (p<u){
        int m=(p+u)/2;
        sorteaza(p,m);
        sorteaza(m+1,u);
        interclaseaza(p,m,u);
    }
}

int main()
{
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sorteaza(1,n);
    for (i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}