Cod sursa(job #378194)

Utilizator idomiralinIdomir Alin idomiralin Data 27 decembrie 2009 21:46:47
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<stdlib.h>
#include<cstdio>

using namespace std;

int i,a[500001];
void sort(int st,int dr)
{int j,piv,aux;   
    i=st;j=dr;piv=a[(st+dr)/2];
    while(i<=j)
    {
              while (a[i]<piv) ++i;
              while (a[j]>piv) --j;
              
                    if (i<=j)
              {
                    aux=a[i];
                    a[i]=a[j];
                    a[j]=aux;
                    ++i;--j;}
               }
    
    if (st<j) sort(st,j);
    if (i<dr) sort(i,dr);
}
int main()
{int n;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    
    scanf("%d",&n);
    for (i=1;i<=n;i++)
    scanf("%d",&a[i]);
    
    sort(1,n);
    
    for (i=1;i<=n;i++)
    printf("%d ",a[i]);
    
return 0;
}