Cod sursa(job #2626711)

Utilizator vasileefrosVasile Efros vasileefros Data 7 iunie 2020 19:52:49
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.67 kb
#include<bits/stdc++.h>
#include<math.h>
using namespace std;

int n, a[500001];

void quickSort(int st, int dr) {
    if (st>=dr) return;
    int r = st + rand() % (dr-st+1);
    int piv = a[st], j=st+1;
    for (int i=st+1; i<=dr; i++) {
        if (a[i] < piv) swap(a[i], a[j]), j++;
    }

    j--;
    a[st]=a[j];
    a[j]=piv;

    quickSort(st, j-1);
    quickSort(j+1, dr);
}

int main() {
    ifstream cin("algsort.in");
    ofstream cout("algsort.out");
    ios_base::sync_with_stdio(false); cin.tie(0);
    cin>>n;
    for (int i=0; i<n; i++) cin>>a[i];

    quickSort(0,n-1);
    for (int i=0; i<n; i++) cout<<a[i]<<" ";

    return 0;
}