Pagini recente » Cod sursa (job #2172989) | Clasament dupa rating | Cod sursa (job #24744) | Cod sursa (job #134066) | Cod sursa (job #959949)
Cod sursa(job #959949)
#include <iostream>
#include <fstream>
using namespace std;
const int NMax = 500000;
int N, a[NMax];
void Qsort(register int st, register int dr);
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
register int i;
f >> N;
for (i = 0; i < N; ++i)
f >> a[i];
Qsort(0,N-1);
for (i = 0; i < N; ++i)
g << a[i] << ' ';
g << '\n';
f.close();
g.close();
return 0;
}
void Qsort(register int st, register int dr)
{
register int i = st, j = dr, aux;
register int x = a[(i+j) >> 1];
do {
while (a[i] < x) ++i;
while (a[j] > x) --j;
if (i <= j)
{
aux = a[i];
a[i] = a[j];
a[j] = aux;
++i; --j;
}
} while (i < j);
if (j > st) Qsort(st,j);
if (i < dr) Qsort(i,dr);
}