Pagini recente » Cod sursa (job #1808424) | Statistici Barbu Alexandra (barbu_alexxa) | Monitorul de evaluare | Rating Nour Mihai-Cosmin (cosmin1972) | Cod sursa (job #458751)
Cod sursa(job #458751)
#include <stdio.h>
int v[500001];
long int n, i, j;
int Divide (int p, int q)
{
int st, dr, x;
st = p;
dr = q;
x = v[p];
while (st < dr)
{
while (st < dr && v[dr] >= x)
dr --;
v[st] = v[dr];
while (st < dr && v[st] <= x)
st ++;
v[dr] = v[st];
}
v[st] = x;
return st;
}
void QSort (int p, int q)
{
int m;
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");
FILE *g = fopen ("algsort.out","w");
fscanf (f,"%ld", &n);
for (i=1; i<=n; ++i)
fscanf (f,"%d", &v[i]);
QSort (1, n);
for (i=1; i<=n; ++i)
fprintf (g,"%d ", v[i]);
fclose(g);
fclose(f);
return 0;
}