Cod sursa(job #2626729)

Utilizator vasileefrosVasile Efros vasileefros Data 7 iunie 2020 20:20:47
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 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+dr)/2;
    swap(a[st], a[r]);
    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;

    //for (int i=0; i<st; i++) cout<<"  ";
    //for (int i=st; i<=dr; i++) cout<<a[i]<<" ";
    //for (int i=dr+1; i<=n; i++) cout<<"  "; cout<<'\n';

    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;
}