Cod sursa(job #1393593)

Utilizator cristigrigoreGrigore Cristan Andrei cristigrigore Data 19 martie 2015 16:45:00
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <cstdio>

using namespace std;
int i,j,m,n,x,y,a[500001],b[500001],k;
void interc(int st,int mij, int dr)
{
    int i,j,k;
    for(i=st; i<=dr; i++)
    b[i]=a[i];
    i=st; j=mij+1; k=st-1;
    while(i<=mij && j<=dr)
    {
        if(b[i]<b[j])
        {
            a[++k]=b[i];
            i++;
        }
        else
        {
            a[++k]=b[j];
            j++;
        }
        for(int l=i; l<=mij; l++)
        a[++k]=b[l];
        for(int l=j; l<=dr; l++)
        a[++k]=b[l];
    }
}
void sortt(int st, int dr)
{
    int m=(st+dr)/2;
    if(st!=dr) {
    sortt(st,m);
    sortt(m+1,dr);
    interc(st,m,dr);}
}
int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&n);
    for(i=1; i<=n; i++)
    scanf("%d",&a[i]);
    sortt(1,n);
    for(i=1; i<=n; i++)
    printf("%d ",a[i]);
    return 0;
}