Cod sursa(job #599464)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 28 iunie 2011 20:30:57
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int a[500005], n;

void quicksort(int start, int end)
{
    int pivot, i, j, aux;
    i=start;
    j=end;
    pivot=a[(i+j)/2];
    do
    {
        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--;
        }
    }
    while(i<=j);
    if(start<j)
    {
        quicksort(start, j);
    }
    if(i<end)
    {
        quicksort(i, end);
    }
}

void afisare(int a[], int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        fout<<a[i]<<" ";
    }
    fout<<"\n";
}

int main()
{
    int i;
    fin>>n;
    for(i=0;i<n;i++)
    {
        fin>>a[i];
    }
    quicksort(0, n-1);
    afisare(n);
    return 0;
}