Pagini recente » Cod sursa (job #846249) | Cod sursa (job #898385) | Cod sursa (job #1206617) | Cod sursa (job #1546684) | Cod sursa (job #698295)
Cod sursa(job #698295)
#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;
}