Cod sursa(job #1181506)

Utilizator AndreiRSStatescu Andrei Rares AndreiRS Data 2 mai 2014 22:07:02
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <stdio.h>
using namespace std;

int n, a[1000];

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

    while (i <= j)
    {
        while (i < right && a[i] < pivot)
            i++;
        while (left < j && pivot < a[j])
            j--;
        if (i <= j)
        {
            swap (a[i], a[j]);
            i++, j--;
        }
    }
    if (i < right)
        quicksort (i, right);
    if (left < j)
        quicksort (left, j);
}

int main()
{
    freopen ("algsort.in", "r", stdin);
    freopen ("algsort.out", "w", stdout);

    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> a[i];

    quicksort (1, n);

    for (int i = 1; i <= n; i++)
        cout << a[i] << ' ';


    return 0;
}