Cod sursa(job #1438359)

Utilizator cristibogdanPatrascu Cristian cristibogdan Data 19 mai 2015 19:02:52
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int Aux[500001],A[500001],i,n,k;
void mergesort(int a[], int aux[], int st, int dr)
{
    int i,j,k,ii;
    int mijl=st+(dr-st)/2;
    if(st>=dr)
        return;
    mergesort(a,aux,st,mijl);
    mergesort(a,aux,mijl+1,dr);
    for(i=st, j=mijl+1, k=st-1;i<=mijl&&j<=dr;)
        if(a[i]<=a[j])
        {
            aux[++k]=a[i];
            i++;
        }
        else
        {
            aux[++k]=a[j];
            j++;
        }
    for( ii=i;ii<=mijl;ii++)
        aux[++k]=a[ii];
    for( ii=j;ii<=dr;ii++)
        aux[++k]=a[ii];
    for( i=st;i<=dr;i++)
        a[i]=aux[i];
    return;
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>A[i];
    mergesort(A,Aux,1,n);
    for(i=1;i<=n;i++)
        g<<A[i]<<" ";
    return 0;
}