Cod sursa(job #2085488)

Utilizator pistvanPeter Istvan pistvan Data 10 decembrie 2017 11:51:42
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <ctime>
#define MaxN 500001
using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int N, a[MaxN];

void QSort(int e, int v)
{
    int x, i, j;
    if (v>e)
    {
        i = rand()%(v-e+1) + e;
        swap(a[i], a[e]);
        i = e;
        x = a[i];
        j = v;
        while (i<j)
        {
            while (x <= a[j] && j>i)
                j--;
            a[i] = a[j];
            while (x >= a[i] && j>i)
                i++;
            a[j] = a[i];
        }
        a[i] = x;
        QSort(e, i);
        QSort(i+1, v);

    }
}

int main()
{
    f>>N;
    for (int i=0;i<N;i++)
        f>>a[i];
    srand(time(NULL));
    QSort(0, N-1);
    for (int i=0;i<N;i++)
        g<<a[i]<<' ';
}