Pagini recente » Cod sursa (job #1954832) | Cod sursa (job #1184184) | Cod sursa (job #1375545) | Cod sursa (job #2190351) | Cod sursa (job #2632438)
#define fisier "algsort"
#ifndef fisier
#define fisier "DEBUG"
#endif
#include <fstream>
std::ifstream in (fisier ".in");
std::ofstream out(fisier ".out");
void quicksort(int* inceput, int* sfarsit)
{
if (sfarsit <= inceput)
return;
int
*mijloc = inceput + (sfarsit - inceput >> 1),
*i = inceput - 1;
std::swap(*mijloc, *sfarsit); // iau pivotul din mijloc
for (int* j = inceput; j <= sfarsit; j++)
if (*j <= *sfarsit)
std::swap(*++i, *j);
quicksort(inceput, i - 1);
quicksort(i + 1, sfarsit);
}
int v[500000], n;
int main()
{
in >> n;
for (int i = 0; i < n; i++)
in >> v[i];
quicksort(v, v + n - 1);
for (int i = 0; i < n; i++)
out << v[i] << ' ';
}