Pagini recente » Cod sursa (job #2746648) | Cod sursa (job #378966) | Cod sursa (job #1214734) | Cod sursa (job #1354779) | Cod sursa (job #2284536)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500002];
int partitionare(int l,int r)
{
srand (time(NULL));
int p=rand()%(r-l)+l;
swap (v[p],v[r]);
p=v[r];
int i=l;
while (v[i]<=p && i<r)
{
i++;
}
for (int c=i; c<r; c++)
{
if (v[c]<=p)
{
swap(v[c],v[i]);
i++;
}
}
swap(v[i],v[r]);
return i;
}
void qsort(int l,int r)
{
if (r-l<1)
{
return;
}
int p=partitionare(l,r);
qsort(l,p-1);
qsort(p+1,r);
}
int main()
{
int n,i;
in>>n;
v[n+1]=-1;
for (i=1; i<=n; i++)
in>>v[i];
qsort(1,n);
for (i=1; i<=n; i++)
out<<v[i]<<" ";
return 0;
}