Cod sursa(job #2390847)

Utilizator AndreiTudorSpiruAndrei Spiru AndreiTudorSpiru Data 28 martie 2019 13:30:33
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],b[500001],n,i;
void merge_sort(int l,int r)
{
    int m=(l+r)/2,i,j,poz1,poz2,k;
    if(l==r)return;
    merge_sort(l,m);
    merge_sort(m+1,r);
    poz1=l;
    poz2=m+1;
    k=l;
    while(poz1<=m||poz2<=r)
    {
        if(poz2>r||(poz1<=m&&a[poz1]<a[poz2]))
        {
            b[k]=a[poz1];
            k++;poz1++;
        }
        else{
            b[k]=a[poz2];
            k++;poz2++;
        }
    }
    for(i=l;i<=r;i++)
        a[i]=b[i];
}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    merge_sort(1,n);
    for(i=1;i<=n;i++)
        g<<a[i]<<" ";
    return 0;
}