Cod sursa(job #698295)

Utilizator misinozzz zzz misino Data 29 februarie 2012 13:18:12
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<cstdio>
using namespace std;
FILE *f,*g;
int n,i,a[500001];
int poz(int li,int ls)
{int i,j,x;
i=li;
j=ls;
x=a[i];
while(i<j)
{while(i<j&&a[j]>=x)
	--j;
a[i]=a[j];
while(i<j&&a[i]<=x)
	++i;
a[j]=a[i];
}
a[i]=x;
return i;
}
void quick(int li,int ls)
{int k;
if(li<ls)
{k=poz(li,ls);
if(k-1>li)
	quick(li,k-1);
if(k+1<ls)
	quick(k+1,ls);
}}
int main()
{f=fopen("algsort.in","r");
g=fopen("algsort.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;++i)
	fscanf(f,"%d",&a[i]);
quick(1,n);
for(i=1;i<=n;++i)
	fprintf(g,"%d ",a[i]);
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}