Pagini recente » Cod sursa (job #2695898) | Cod sursa (job #2024849) | Cod sursa (job #3131766) | Cod sursa (job #636772) | Cod sursa (job #2943698)
#include <fstream>
#include <cstdlib>
using namespace std;
#define NMAX 500000
int v[NMAX], h[NMAX];
void QSORT(int st, int dr)
{
int s = st, d = dr;
int pivot = v[st + rand()%(dr - st + 1)];
while (v[s] > pivot)
s++;
while (v[d] < pivot)
d--;
while (s < d)
{
swap (v[s], v[d]);
do
s++;
while (v[s] > pivot);
do
d--;
while (v[d] < pivot);
}
if (st < d)
QSORT(st, d);
if (d+1 < dr)
QSORT(d+1, dr);
}
int main()
{
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n;
fin >> n;
for (int i = 0; i < n; i++)
fin >> v[i];
QSORT(0, n-1);
for (int i = n-1; i >= 0; i--)
fout << v[i] << " ";
}