Pagini recente » Cod sursa (job #2798093) | Cod sursa (job #1510116) | Cod sursa (job #944693) | Cod sursa (job #2740481) | Cod sursa (job #681752)
Cod sursa(job #681752)
#include <cstdio>
#include <malloc.h>
int n;
int * a;
void qs(int l, int r) {
int i = l;
int j = r;
int p = a[(i + j) / 2];
while (i <= j) {
while (a[i] < p) {++i;}
while (a[j] > p) {--j;}
if (i <= j) {
int t = a[i];
a[i] = a[j];
a[j] = t;
++i;
--j;
}
}
if (l < j) {qs(l, j);}
if (i < r) {qs(i, r);}
}
int main() {
FILE * f1 = fopen("algsort.in", "rt");
fscanf(f1, "%d", &n);
a = (int *)malloc(n * 4);
for (int i = 0; i < n; ++i) {
fscanf(f1, "%d", &a[i]);
}
qs(0, n - 1);
FILE * f2 = fopen("algsort.out", "wt");
for (int i = 0; i < n; ++i) {
fprintf(f2, "%d ", a[i]);
}
fclose(f1);
fclose(f2);
}