Cod sursa(job #736490)

Utilizator RaduGabriel2012Dinu Radu RaduGabriel2012 Data 18 aprilie 2012 19:42:27
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include<stdio.h>
FILE *f=fopen("algsort.in","r"),*g=fopen("algsort.out","w");
int n,i,a[500001];
void quicksort(int l, int r)
{ int i = l-1, j = r; int v = a[r]; int aux;
if (r <= l) return;
for (;;)
{
while (a[++i] < v) ;
while (v < a[--j]) if (j == l) break;
if (i >= j) break;
aux=a[i];a[i]=a[j];a[j]=aux; 
}
aux=a[i];a[i]=a[r];a[r]=aux; 
quicksort(l, i-1);
quicksort(i+1, r);
}
int main()
{
fscanf(f,"%d",&n);
for (i=1;i<=n;i++) fscanf(f,"%d",&a[i]);
quicksort(1,n);
for (i=1;i<=n;i++) fprintf(g,"%d ",a[i]);
fclose(f);fclose(g);
return 0;
}