Pagini recente » Cod sursa (job #469384) | Cod sursa (job #2833615) | Cod sursa (job #1520828) | Cod sursa (job #2067597) | Cod sursa (job #1801553)
#include<cstdio>
#include<algorithm>
#include<ctime>
using namespace std;
int v[500007],n;
int Random(int a,int b)
{
return a+(1LL*rand()*rand())%(b-a+1);
}
void qsort(int st,int dr)
{
if(st >= dr) return;
int a=v[Random(st,dr)],i=st,j=dr;
while(i<j)
{
while(i<= dr && v[i]<a) i++;
while(j>=st && v[j]>a) j--;
if(i <= j)
{
swap(v[i], v[j]);
i++;
j--;
}
}
qsort(st,j);
qsort(i,dr);
}
int main()
{
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
srand(time(0));
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&v[i]);
qsort(1,n);
for(int i=1;i<=n;i++) printf("%d ",v[i]);
return 0;
}