Cod sursa(job #656204)

Utilizator fenrigasdFc dd2 fenrig Data 4 ianuarie 2012 12:28:11
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

int n , v[500005];

void create()
{
    freopen("algsort.in","r",stdin);
    scanf("%d",&n);
    for(int i=1;i<=n;i++)
     scanf("%d",&v[i]);
}
void interschimba(int &a , int &b)
{
    a=a+b;
    b=a-b;
    a=a-b;
}
void qsort(int s,int p)
{
    if(s<p)
        {int m,i=s,j=p,si=0,sj=1;
        while(i<j)
         {
           if(v[i]>v[j]){interschimba(v[i],v[j]);interschimba(si,sj);}
           i=i+si;j=j-sj;
         }
             m=i;
            qsort(s,m-1);
            qsort(m+1,p);
        }
}
void write()
{
     freopen("algsort.out","w",stdout);
     for(int i=1;i<=n;i++)
      printf("%d ",v[i]);
}
int main()
{
    create();
    qsort(1,n);
    write();

}