Pagini recente » Cod sursa (job #207574) | Cod sursa (job #791472) | Cod sursa (job #3286533) | Cod sursa (job #3208138) | Cod sursa (job #240196)
Cod sursa(job #240196)
//quick sort
#include<stdio.h>
#define N 500001
int n,i,a[N];
void readd(),QS(int L,int R),prints();
int main()
{
readd();
QS(1,n);
prints();
return 0;
}
void readd()
{
freopen("algsort.in","rt",stdin);
freopen("algsort.out","wt",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)scanf("%d",&a[i]);
}
void QS(int L,int R)
{
int LL=L,RR=R,V,aux;
V=a[(LL+RR)>>1];
do
{
while(a[LL]<V)LL++;
while(a[RR]>V)RR--;
if(LL<=RR){aux=a[LL];a[LL]=a[RR];a[RR]=aux;LL++;RR--;}
}while(LL<=RR);
if(L<RR)QS(L,RR);
if(LL<R)QS(LL,R);
}
void prints()
{
for(i=1;i<=n;i++)printf("%d ",a[i]);
}