Cod sursa(job #1239464)

Utilizator sherban26FMI Mateescu Serban-Corneliu sherban26 Data 9 octombrie 2014 01:21:45
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin;
FILE *fout;

int v[500010];

void xsort(int l, int r)
{
    int piv = v[rand() % (r - l + 1) + l];
    int i, j;
    i = l;
    j = r;

    while(i <= j)
    {
        while(v[i] < piv && i<=r)
            i++;
        while(v[j] > piv)
            j--;
        if(i <= j)
        {
            v[i] = v[i] + v[j] - (v[j] = v[i]);
            i++;
            j--;
        }
    }

    if(j > l)
        xsort(v, l, j);
    if(i < r)
        xsort(v, i, r);
}

int main()
{
    fin = fopen("algsort.in", "r");
    fout = fopen("algsort.out", "w");

    int n, aux, i;

    fscanf(fin, "%d", &n);

    for(i = 0; i < n; i++)
        fscanf(fin, "%d", &v[i]);

    srand(26);
    xsort(0, n-1);

    for (i = 0; i < n; i++)
        fprintf(fout, "%d ", v[i]);

    fclose(fin);
    fclose(fout);

    return 0;
}