Pagini recente » Cod sursa (job #686354) | Cod sursa (job #2154454) | Cod sursa (job #2286658) | Cod sursa (job #1959915) | Cod sursa (job #1396391)
#include<fstream>
#include<time.h>
using namespace std;
int v[500000];
ifstream in("algsort.in");
ofstream out("algsort.out");
void qsort(int i,int j)
{
if(i<j)
{
int st=i, k,p=i + rand()%(j-i + 1);
for(k=i;k<=j;k++)
if(v[k]<v[p])
{
if(p==k)
st--;
else
{
if(p==st)
p=k;
swap(v[st++],v[k]);
}
}
swap(v[st],v[p]);
qsort(i,st-1);
qsort(st+1,j);
}
}
int main()
{
srand(time(NULL));
int n;
in>>n;
for(int i=0;i<n;i++)
in>>v[i];
qsort(0,n-1);
for(int i=0;i<n;i++)
out<<v[i]<<' ';
in.close();
out.close();
return 0;
}