Pagini recente » Cod sursa (job #536412) | Cod sursa (job #572034) | Cod sursa (job #564640) | Cod sursa (job #993338) | Cod sursa (job #303574)
Cod sursa(job #303574)
#include <cstdio>
#define DIM 500005
int a[DIM], n;
int divide(int p, int q)
{
int st = p, dr = q, x = a[p];
while (st < dr)
{
while (st < dr && a[dr] >= x)
dr--;
a[st] = a[dr];
while (st < dr && a[st] <= x)
st++;
a[dr] = a[st];
}
a[st] = x;
return st;
}
void qsort(int p, int q)
{
int m = divide(p, q);
if (m - 1 > p)
qsort(p, m - 1);
if (m + 1 < q)
qsort(m + 1, q);
}
int main()
{
FILE *f = fopen("algsort.in", "r");
fscanf(f, "%d", &n);
int i;
for (i = 0; i < n; i++)
fscanf(f, "%d", &a[i]);
fclose(f);
qsort(0, n - 1);
f = fopen("algsort.out", "w");
for (i = 0; i < n; i++)
fprintf(f, "%d ", a[i]);
fclose(f);
return 0;
}