Cod sursa(job #1268861)

Utilizator sebiinfosimon sebastian sebiinfo Data 21 noiembrie 2014 16:25:00
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>

using namespace std;

ifstream in("algsort.in");
ofstream out("algsort.out");
const int nmax=500000;
int a[nmax+1],v[nmax+1];

void mergesort (int i,int j)
{
    int p=i,q=(i+j)/2+1;
    if(i==j)
    return ;
    mergesort(i,(i+j)/2);
    mergesort((i+j)/2+1,j);
    for(int x=i;x<=j;x++)
    {
        if( q>j || (p<=(i+j)/2 && v[p]<v[q]) )
        {
            a[x]=v[p];
            p++;
        }
        else
        {
            a[x]=v[q];
            q++;
        }
    }
    for(int x=i; x<=j;x++)
    v[x]=a[x];
}

int main()
{
    int n;
    in>>n;
    for(int x=1;x<=n;x++)
    in>>v[x];
    mergesort(1,n);
    for(int i=1;i<=n;i++)
    out<<v[i]<<" ";
    return 0;
}