Pagini recente » Cod sursa (job #201407) | Cod sursa (job #2876145) | Cod sursa (job #896380) | Cod sursa (job #2331830) | Cod sursa (job #1021944)
#include<algorithm>
#include<iostream>
#include<cstdlib>
#include<fstream>
#include<ctime>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[500000],n;
void qs(int a, int b)
{
int i=a, j=b, p;
srand(time(NULL));
p=a+rand()%(b-a);
while(i<=j)
{
while(v[i]<v[p])
++i;
while(v[j]>v[p])
--j;
if(i<=j)
{
swap(v[i], v[j]);
++i;
--j;
}
}
if(a<j)
qs(a,j);
if(i<b)
qs(i,b);
}
int main()
{
f>>n;
for(int i=0;i<n;++i)
f>>v[i];
qs(0,n-1);
for(int i=0;i<n;++i)
g<<v[i]<<" ";
return 0;
}