Pagini recente » Cod sursa (job #2492200) | Cod sursa (job #575523) | Cod sursa (job #510903) | Cod sursa (job #1320093) | Cod sursa (job #288378)
Cod sursa(job #288378)
#include <stdio.h>
int a[500000],n;
int divide(int p,int q)
{
int st=p,dr=q,x=a[p];
while(st<dr)
{
while(st<dr && a[dr]>=x) dr--;
a[st]=a[dr];
while(st<dr && a[st]<=x) st++;
a[dr]=a[st];
}
a[st]=x;
return st;
}
void qsort(int p,int q)
{
int m=divide(p,q);
if(m-1>p) qsort(p,m-1);
if(m+1<q) qsort(m+1,q);
}
int main()
{
int i;
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
scanf("%d",&n);
for(i=1; i<=n; i++) scanf("%d",&a[i]);
qsort(1,n);
for(i=1; i<=n; i++) printf("%d ",a[i]);
return 0;
}