Cod sursa(job #1778103)

Utilizator crazylamaRiclea Andrei crazylama Data 13 octombrie 2016 14:42:28
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <cstdlib>
using namespace std;

FILE *f=fopen("algsort.in","r");
FILE *g=fopen("algsort.out","w");

void QuickSort(int *v, int st, int dr) {
    if(st <= dr) {
        int i = st, j = dr, x = v[st];
        while (i < j) {
            while (i < j && v[j] >= x)
                j--;
            v[i] = v[j];
            while(i < j && v[i] <= x)
                i++;
            v[j] = v[i];
        }
        v[i] = x;
        QuickSort(v, 0, i - 1);
        QuickSort(v, i + 1, dr);
    }
}

int main()
{
    int n, *v;
    fscanf(f, "%d", &n);
    v = (int*)calloc(n + 1, sizeof(int));
    for (int i = 0; i < n; i++)
        fscanf(f, "%d", &v[i]);
    QuickSort(v, 0, n-1);
    for (int i = 0; i < n; i++)
        fprintf(g, "%d ", v[i]);
    return 0;
}