Pagini recente » Cod sursa (job #1132648) | Cod sursa (job #2733025) | Cod sursa (job #21690) | Cod sursa (job #1284392) | Cod sursa (job #274093)
Cod sursa(job #274093)
#include<stdio.h>
#include<stdlib.h>
long n,i,v[500001];
void Qsort(long st,long dr);
int main()
{
freopen("algsort.in","rt",stdin);
freopen("algsort.out","wt",stdout);
scanf("%ld",&n);
for(i=1;i<=n;++i) scanf("%ld",&v[i]);
Qsort(1,n);
for(i=1;i<=n;++i) printf("%ld ",v[i]);
//system("PAUSE");
return 0;
}
long sort(long st,long dr)
{
long x=v[st];
while(st<dr)
{while(st<dr&&v[dr]>=x) dr--;
v[st]=v[dr];
while(st<dr&&v[st]<=x) st++;
v[dr]=v[st];
}
v[st]=x;
return st;
}
void Qsort(long st,long dr)
{
long m=sort(st,dr);
if(m-1>st) Qsort(st,m-1);
if(m+1<dr) Qsort(m+1,dr);
}