Cod sursa(job #2669923)

Utilizator Asgari_ArminArmin Asgari Asgari_Armin Data 8 noiembrie 2020 14:21:50
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <bits/stdc++.h>

using namespace std;

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

const int NMAX = 5e5;
int v[NMAX + 1];

void qsort(int v[], int begin, int end) {
  int pivot = v[begin + rand() % (end - begin + 1)];
  int b = begin, e = end;
  while (v[b] < pivot)
    b++;
  while (v[e] > pivot)
    e--;
  while(b < e) {
    swap(v[b], v[e]);
    do
      b++;
    while (v[b] < pivot);

    do
      e--;
    while (v[e] > pivot);
  }
  if (begin < e)
    qsort(v, begin, e);
  if (e + 1 < end)
    qsort(v, e + 1, end);
}

int main() {
  int n, i;
  fin >> n;
  for( i = 0; i < n; ++i )
    fin >> v[i];
  qsort(v, 0, n - 1);
  for( i = 0; i < n; ++i )
    fout << v[i] << " ";
  return 0;
}