Cod sursa(job #1183879)

Utilizator ArchazeyBaltatu Andrei-Mircea Archazey Data 10 mai 2014 14:07:39
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include<fstream>
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int n,a[500005],aux[500005];

inline void MergeSort(int st,int dr)
{
    if (st<dr)
        {
            int mij,i,j,lg;
            mij=(st+dr)/2;
            MergeSort(st,mij);
            MergeSort(mij+1,dr);
            i=st;
            j=mij+1;
            lg=1;
            while (i<=mij && j<=dr)
                {
                    if (a[i]<a[j])
                        {aux[lg]=a[i];i++;}
                    else {aux[lg]=a[j];j++;}
                    lg++;
                }
            while (i<=mij) aux[lg++]=a[i++];
            while (j<=dr) aux[lg++]=a[j++];
            j=st;
            for (i=1;i<lg;i++,j++)
                a[j]=aux[i];
        }
}

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