Pagini recente » Cod sursa (job #303207) | Cod sursa (job #448528) | Cod sursa (job #1508767) | Cod sursa (job #2881570) | Cod sursa (job #899321)
Cod sursa(job #899321)
#include<cstdio>
using namespace std;
int a[500001];
int div(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=div(p,q);
if (m-1>p) qsort(p,m-1);
if (m+1<q) qsort(m+1,q);
}
int main()
{
int n,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;
}