Pagini recente » Cod sursa (job #2860780) | Cod sursa (job #2513843) | Cod sursa (job #1229517) | Cod sursa (job #2221376) | Cod sursa (job #315926)
Cod sursa(job #315926)
#include<stdio.h>
#define dim 4000
int a[dim];
int n,m,i,k;
void afis(){ for(i=1;i<=n;i++) printf("%d ",a[i]);}
void read(){ scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]);}
void sw(int &i,int &k)
{
int aux;
aux=a[i];
a[i]=a[k];
a[k]=aux;
i++;
k--;
}
void qsort(int st,int dr)
{
int i=st,j=dr,p=a[(st+dr)/2];
do
{
while(a[i]<p)
i++;
while(a[j]>p)
j--;
if(i<=j)
sw(i,j);
}
while(i<=j);
if(st<j)
qsort(st,j);
if(i<dr)
qsort(i,dr);
}
int main ()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
read();
qsort(1,n);
afis();
return 0;
}