Pagini recente » Cod sursa (job #228696) | Cod sursa (job #1542385) | Cod sursa (job #146639) | Cod sursa (job #1507342) | Cod sursa (job #1833616)
#include <cstdio>
#include <cstdlib>
using namespace std;
FILE *f=fopen("algsort.in","r");
FILE *g=fopen("algsort.out","w");
void QuickSort(unsigned int *v, int st, int dr) {
if(st < dr) {
int i = st, j = dr;
int pivot = st + (dr - st) / 2;
unsigned int x = v[pivot];
while (i < j) {
while (i < j && v[j] >= x)
j--;
while(i < j && v[i] <= x)
i++;
if (i < j)
{
int aux = v[i];
v[i] = v[j];
v[j] = aux;
}
}
QuickSort(v, st, pivot);
QuickSort(v, pivot + 1, dr);
}
}
int main()
{
int n;
unsigned int *v;
fscanf(f, "%d", &n);
v = (unsigned int*)calloc(n + 1, sizeof(unsigned int));
for (int i = 0; i < n; i++)
fscanf(f, "%u", &v[i]);
QuickSort(v, 0, n - 1);
for (int i = 0; i < n; i++)
fprintf(g, "%u ", v[i]);
return 0;
}