Cod sursa(job #3031021)

Utilizator anamariatoaderAna Toader anamariatoader Data 18 martie 2023 12:43:59
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <bits/stdc++.h>
#include <algorithm>

using namespace std;

void quicksort(int *v, int left, int right)
{
    if (left >= right)
        return;

    int mid = left + (right - left) / 2;
    int pivot = v[mid], j = left;

    swap(v[mid], v[right]);

    for (int i = left; i < right; i++)
        if (v[i] < pivot) {
            swap(v[j], v[i]);
            j++;
        }
    
    swap(v[j], v[right]);

    quicksort(v, left, j - 1);
    quicksort(v, j + 1, right);
}

int main()
{
    ifstream fin("algsort.in");
    ofstream fout("algsort.out");

    int n;
    fin >> n;

    int *v = (int*) malloc (n * sizeof(int));
    if (!v) return -1;

    for (int i = 0; i < n; i++)
        fin >> v[i];

    quicksort(v, 0, n - 1);

    for (int i = 0; i < n; i++)
        fout << v[i] << ' ';

    return 0;
}