Cod sursa(job #1654305)

Utilizator LazarAndreiLazar Andrei Teodor LazarAndrei Data 16 martie 2016 22:30:05
Problema Sortare prin comparare Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <fstream>
using namespace std;
ifstream f ("algsort.in");
ofstream g ("algsort.out");

int n , a[100009], i;
void read (int &n , int a[100009])
{
   f>>n;
    for(int i = 1 ; i <= n ; ++ i)
        f>>a[i];
}

void quicksort (int a[] , int left , int right)
{
    int i = left , j = right , aux;
    int pivot = a[(left +right)/2];

    while (i <= j)
    {
        while (a[i] < pivot)
            ++ i;
        while (a[j] > pivot)
            -- j;
        if(i <= j )
        {
            aux = a[i];
            a[i] = a[j];
            a[j] = aux;
            ++ i;
            -- j;
        }
    }

    if(left < j)
    {
        quicksort(a , left , j);
    }
    if(i  < right)
    {
        quicksort(a, i , right);
    }
}


int main()
{
    read (n , a);
    quicksort (a , 1 , n);
    for(i = 1 ; i <= n ; ++ i)
       g<<a[i]<<" ";

    return 0;
}