Pagini recente » Cod sursa (job #2891591) | Cod sursa (job #122691) | Cod sursa (job #139530) | Cod sursa (job #891391) | Cod sursa (job #270985)
Cod sursa(job #270985)
#include <cstdio>
#define Nmax 500001
int N, v[Nmax], i;
inline void swap(int &x, int &y) { int tmp = x; x = y; y = tmp; }
void sort(int p, int q)
{
int st = p, dr = q, m = v[(st+dr)>>1];
while (st < dr)
{
while (v[st] < m) ++st;
while (v[dr] > m) --dr;
if (st <= dr) swap(v[st++],v[dr--]);
}
if (st < q) sort(st,q);
if (p < dr) sort(p,dr);
}
int main()
{
for ( freopen("algsort.in", "r", stdin), scanf("%d\n", &N), i = 1; i<=N; ++i ) scanf("%d ", v + i);
sort(1,N);
for (freopen("algsort.out", "w", stdout), i = 1; i<=N; ++i) printf("%d ", v[i]);
return 0;
}