Cod sursa(job #1493077)

Utilizator Burbon13Burbon13 Burbon13 Data 28 septembrie 2015 18:23:03
Problema Sortare Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>
#include <ios>
#define nmx 500002
using namespace std;

int n,v[nmx];

void read(){
    scanf("%d", &n);
    for(int i = 1; i <= n; ++i)
        scanf("%d", &v[i]);
}

void qsort(int left, int right){
    int pivot = v[left + (right - left) / 2], i = left, j = right;

    while(i <= j){
        while(v[i] < pivot)
            ++ i;
        while(v[j] > pivot)
            -- j;
        if(i <= j){
            swap(v[i],v[j]);
            ++ i;
            -- j;
        }
    }

    if(left < j)
        qsort(left,j);
    if(right > i)
        qsort(i,right);
}

void output(){
    for(int i = 1; i <= n; ++i)
        printf("%d ", v[i]);
}

int main(){
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    read();
    qsort(1,n);
    output();
    return 0;
}