Pagini recente » Cod sursa (job #1483232) | Cod sursa (job #3284879) | Cod sursa (job #677583) | Stelele Informaticii 2009, clasele 9-10, ziua 2 | Cod sursa (job #3254840)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int NMAX = 500000;
int n;
int v[NMAX+1], pos, pivot;
int partitie(int st, int dr)
{
int l = st, r = dr;
int mij = v[(st+dr)/2];
while(l <= r)
{
while(v[l] < mij)
l++;
while(v[r] > mij)
r--;
if(l <= r)
{
swap(v[l], v[r]);
l++;
r--;
}
}
return l;
}
void dei(int st, int dr)
{
if(st < dr)
{
pivot = partitie(st, dr);
dei(st, pivot-1);
dei(pivot, dr);
}
}
int main()
{
fin >> n;
for(int i=1; i<=n; i++)
fin >> v[i];
random_shuffle(v+1,v+1+n);
dei(1,n);
for(int i=1; i<=n; i++)
fout << v[i] << ' ';
return 0;
}