Pagini recente » Cod sursa (job #557480) | Cod sursa (job #3256633) | Cod sursa (job #643129) | Cod sursa (job #1951312) | Cod sursa (job #283324)
Cod sursa(job #283324)
#include <stdio.h>
int n;
int a[500000];
void read();
void write();
void sort(int, int);
int main()
{
read();
sort(0, n - 1);
write();
return 0;
}
void sort(int li, int ls)
{
if (li == ls)
{
return;
}
int i = li, j = ls, p = 0, tmp;
while (i < j)
{
if (a[i] > a[j])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
p = 1 - p;
}
i += p;
j -= (1 - p);
}
sort(li, i);
sort(i + 1, ls);
}
void sort1()
{
int i, j, tmp;
for (i = 0; i < n - 1; ++i)
{
for (j = i + 1; j < n; ++j)
{
if (a[j] < a[i])
{
tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
void write()
{
int i;
FILE *fout = fopen ("algsort.out", "w");
for (i = 0; i < n; ++i)
{
fprintf (fout, "%d ", a[i]);
}
fclose (fout);
}
void read()
{
int i;
FILE *fin = fopen ("algsort.in", "r");
fscanf (fin, "%d", &n);
for (i = 0; i < n; ++i)
{
fscanf (fin, "%d", &a[i]);
}
fclose (fin);
}