Cod sursa(job #1458073)

Utilizator fluture.godlikeGafton Mihnea Alexandru fluture.godlike Data 6 iulie 2015 15:12:10
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.88 kb
#include <cstdio>
#include <algorithm>
#define NMAX 500007
using namespace std;
FILE *fin, *fout;
int n, v[NMAX];
int Mpartition(int st, int dr)
{
    int i = st-1, j = st;
    for( ; j< dr; j++)
    {
        if(v[j] < v[dr])
        {
            i++;
            swap(v[i], v[j]);
        }
    }
    swap(v[i+1], v[dr]);
    return i+1;
}
void quickSort(int st, int dr)
{
    int tmp;
    if(dr - st + 1 >= 2)
    {
        tmp = Mpartition(st, dr);
        quickSort(st, tmp-1);
        quickSort(tmp+1, dr);
        return;
    }
}
int main()
{
    fin = freopen("algsort.in", "r", stdin);
    fout = 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]);
    printf("\n");
    fclose(fin);
    fclose(fout);
    return 0;
}