Cod sursa(job #1589855)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 4 februarie 2016 15:20:59
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

int v[500005];

void quickSort(int l, int r){
    int mn,mx,mj;
    mn = l;
    mx = r;
    mj = v[(l+r)/2];
    do{
        while(v[mn] < mj){
            mn++;
        }
        while(v[mx] > mj){
            mx--;
        }
        if(mn <= mx){
            swap(v[mn],v[mx]);
            mn++;
            mx--;
        }
    }while(mn <= mx);
    if(l < mx){
        quickSort(l, mx);
    }
    if(mn < r){
        quickSort(mn, r);
    }
}

int main()
{
    int n;
    freopen("algsort.in", "r", stdin);
    freopen("algsort.out", "w", stdout);
    scanf("%d",&n);
    for(int i = 1;i <= n;i++){
        scanf("%d",&v[i]);
    }
    quickSort(1, n);
    for(int i = 1;i <= n;i++){
        printf("%d ",v[i]);
    }
    return 0;
}