Pagini recente » Cod sursa (job #286007) | Cod sursa (job #312044) | Cod sursa (job #153784) | Cod sursa (job #1134842) | Cod sursa (job #357780)
Cod sursa(job #357780)
#include<stdio.h>
#define M 5000010
FILE *f=fopen("algsort.in","r");
FILE *g=fopen("algsort.out","w");
long n,v[M];
long imparte(long i, long j)
{
long p,q,x;
p=i;
q=j;
x=v[i];
while(p<=q)
{
while(p<q && x<=v[q])
q--;
v[p]=v[q];
while(p<q && x>v[p])
p++;
v[q]=v[p];
}
v[p]=x;
return p;
}
void quick(long i, long j)
{
if(i<=j) {long m;
m=imparte(i,j);
if(i<m-1) quick(i,m-1);
if(j>m+1) quick(m+1,j);
}
}
void afis()
{
long i;
for(i=1;i<=n;i++)
fprintf(g,"%ld ",v[i]);
fprintf(g,"\n");
}
int main()
{
long i;
fscanf(f,"%ld",&n);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&v[i]);
quick(1,n);
afis();
fclose(f);
fclose(g);
return 0;
}