Cod sursa(job #3208996)

Utilizator stefanvoicaVoica Stefan stefanvoica Data 1 martie 2024 17:48:26
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>
#define N 500000
using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");

// Doar am pus spatii si am modularizat acolo unde se putea
// Am definit dimensiunea maxima a vectorului

int partitie(int st, int dr, int v[])
{
    int i, pivot = v[dr], poz = st;
    for(i = st; i <= dr; i++)
        if(v[i] <= pivot)
        {
            swap(v[poz], v[i]);
            poz++;
        }
    return poz - 1;
}

void qs(int st,int dr, int v[])
{
    if (st >= dr)
        return;
    int mij = partitie(st, dr, v);
    qs(st, mij - 1, v);
    qs(mij + 1, dr, v);
}

void citire(int &n, int v[])
{
    fin >> n;
    for(int i = 1; i <= n; i++)
        fin >> v[i];
}

void afisare(int st, int dr, int v[])
{
    for(int i = st; i <= dr; ++i)
        fout << v[i] << " ";
}

int main()
{
    int n, v[N + 5];
    citire(n, v);
    qs(1, n, v);
    afisare(1, n, v);
    return 0;
}