Cod sursa(job #2080449)

Utilizator karakter98Irimia Robert karakter98 Data 2 decembrie 2017 23:13:13
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <stdio.h>
using namespace std;

FILE* fin;
FILE* fout;

int n;
int V[500000];

void quickSort(int st, int dr)
{
    if(st == dr)
        return;
    int pivot = V[(st + dr) / 2];
    int i = st;
    int j = dr;
    do {
        while(i < dr && V[i] < pivot) ++i;
        while(j > st && V[j] > pivot) --j;
        if(i <= j)
        {
            int aux = V[i];
            V[i] = V[j];
            V[j] = aux;
            ++i;
            --j;
        }
    } while(i <= j);
    if(j > st) quickSort(st, j);
    if(i < dr) quickSort(i, dr);
}

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

    fscanf(fin, "%d", &n);
    for(int i = 0; i < n; ++i)
        fscanf(fin, "%d ", V + i);
    quickSort(0, n - 1);
    for(int i = 0; i < n; ++i)
        fprintf(fout, "%d ", V[i]);

    return 0;
}