Pagini recente » Cod sursa (job #2253495) | Cod sursa (job #2944264) | Cod sursa (job #966816) | Cod sursa (job #1959036) | Cod sursa (job #2911858)
#include <stdio.h>
int v[500000];
void qSort(int sortBegin, int sortEnd) {
int aux, b = sortBegin, e = sortEnd;
int pivot = v[(b + e) / 2];
while (v[b] < pivot)
b++;
while (v[e] > pivot)
e--;
while (b < e) {
aux = v[b];
v[b] = v[e];
v[e] = aux;
do
b++;
while (v[b] < pivot);
do
e--;
while (v[e] > pivot);
}
if (sortBegin < e)
qSort(sortBegin, e);
if (e + 1 < sortEnd)
qSort(e + 1, sortEnd);
}
int main() {
FILE *fin, *fout;
int n;
int i;
fin = fopen("algsort.in", "r");
fscanf(fin, "%d", &n);
for (i = 0; i < n; i++)
fscanf(fin, "%d", &v[i]);
fclose(fin);
qSort(0, n - 1);
fout = fopen("algsort.out", "w");
for (i = 0; i < n; i++)
fprintf(fout, "%d ", v[i]);
fclose(fout);
return 0;
}