Cod sursa(job #2079977)

Utilizator MelacasKorian Ebraahim Melacas Data 2 decembrie 2017 11:07:56
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>

using namespace std;

void Quicksort(int l, int r, int v[])
{
    if (l == r) return;
    int pivot = v[(l + r) / 2];
    int i = l, j = r;
    while (i <= j)
    {
        while (v[i] < pivot) i++;
        while (v[j] > pivot) j--;
        if (i <= j)
        {
            int aux = v[i];
            v[i] = v[j];
            v[j] = aux;
            i++;
            j--;
        }
    }
    Quicksort(l,i - 1,v);
    Quicksort(i,r,v);
}

int main()
{
    FILE *Intrare, *Iesire;
    Intrare = fopen("algsort.in","r");
    Iesire = fopen("algsort.out","w");
    int n;
    fscanf(Intrare,"%d",&n);
    int *v = new int[n];
    for (int i = 0 ; i < n ; i++)
        fscanf(Intrare,"%d",&v[i]);
    Quicksort(0,n-1,v);
    for (int i = 0 ; i < n ; i++)
        fprintf(Iesire,"%d ",v[i]);
}