Pagini recente » Cod sursa (job #74339) | Cod sursa (job #1010445) | Cod sursa (job #1848921) | Cod sursa (job #78268) | Cod sursa (job #303573)
Cod sursa(job #303573)
#include <cstdio>
#define DIM 500005
int a[] = {4, 1 ,6 ,5 ,5 ,2 ,1 }, 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;
}