Pagini recente » Cod sursa (job #2609509) | Cod sursa (job #3238211) | Cod sursa (job #905875) | Cod sursa (job #679365) | Cod sursa (job #2540453)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");
int v[500005],n,i,j;
inline void pivot(int st,int dr)
{
swap(v[(long long)rand()*rand()%(dr-st)+st],v[dr]);
j=st-1;
for(i=st; i<dr; i++)
if(v[i]<v[dr])
swap(v[i],v[++j]);
swap(v[++j],v[dr]);
}
inline void qusort(int st,int dr)
{
if(st<dr)
{
pivot(st,dr);
int p=j;
qusort(st,p-1);
qusort(p+1,dr);
}
}
int main()
{
fin>>n;
srand(time(0));
for(i=1; i<=n; ++i)
fin>>v[i];
qusort(1,n);
for(i=1; i<=n; ++i)
fout<<v[i]<<' ';
}