Cod sursa(job #685809)

Utilizator kokoCoconetu Stefan koko Data 21 februarie 2012 10:56:02
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
int aux [500001];
void inter (int st, int dr)
{
    int i, j, k;
    int m=(st+dr)/2;
    for (i=k=st,j=m+1; i<=m && j<=dr; )
        if (v[i]<v[j]) aux[k++]=v[i++];
        else aux[k++]=v[j++];
    while (i<=m)
        aux[k++]=v[i++];
    while (j<=dr)
        aux[k++]=v[j++];
    for(i=st; i<=dr; i++)
    {
        v[i]=aux[i];
    }
}
void sortare (int st, int dr)
{
    if ( st == dr) return ;
    int m=(st+dr)/2;
    sortare (st, m);
    sortare (m+1, dr);
    inter (st, dr);
}
int main ()
{
    int n,i;
    in>>n;
    for (i=1; i<=n; i++)
    {
        in >> v[i];
    }
    sortare (1, n);
    for(i=1;i<=n;i++)
    {
        out<<v[i]<<" ";
    }
    return 0;
}