Cod sursa(job #2291366)

Utilizator lflorin29Florin Laiu lflorin29 Data 27 noiembrie 2018 22:03:24
Problema Sortare prin comparare Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

const int N = 5e5 + 2;

int n, a[N];

int partitie(int st, int dr) {
  int pivot = a[dr], i = st;
  for(int j = st; j < dr; ++j) {
    if(a[j] < pivot) {
      swap(a[i], a[j]);
      ++i;
    }
  }
  swap(a[i], a[dr]);
  return i;
}
void quick_sort(int st, int dr) {
  if(st >= dr) return;

  int pivot = st + rand() % (dr - st + 1);
  swap(a[pivot], a[dr]);
  int poz = partitie(st, dr);
  quick_sort(st, poz - 1);
  quick_sort(poz + 1, dr);



}


int main() {
  ifstream cin("algsort.in");
  ofstream cout("algsort.out");
  cin >> n;
  srand(time(0));
  for(int i = 1; i <= n; ++i)
    cin >> a[i];
  quick_sort(1, n);
  for(int i = 1; i <= n; ++i)
    cout << a[i] << ' ';

}