Pagini recente » Cod sursa (job #2796434) | Cod sursa (job #3252955) | Cod sursa (job #2243483) | Cod sursa (job #2144156) | Cod sursa (job #1508499)
#include <fstream>
#include <cstdlib>
#include <ctime>
#define NMAX 500005
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[NMAX];
void quicksort(int st, int dr)
{
int pivot = v[st + rand() % (dr - st + 1)];
int i = st;
int j = dr;
do
{
while (v[i] < pivot && i < dr) ++i;
while (v[j] > pivot && j > st) --j;
if (i <= j)
{
swap(v[i], v[j]);
++i; --j;
}
} while (i <= j);
if (j > st) quicksort(st, j);
if (i < dr) quicksort(i, dr);
}
int main()
{
srand(time(NULL));
int n;
fin >> n;
for (int i = 0; i < n; ++i)
fin >> v[i];
quicksort(0, n - 1);
for (int i = 0; i < n; ++i)
fout << v[i] << ' ';
}