Cod sursa(job #1766849)

Utilizator AhileGigel Frone Ahile Data 28 septembrie 2016 16:33:56
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include<bits/stdc++.h>
using namespace std;
#define in f
#define out g


ifstream f ("algsort.in");
ofstream g ("algsort.out");

int n;
int v[500010];

void quick(int left, int right) {
      int i = left, j = right;
      int tmp;
      int pivot = v[rand() % (right - left) + left + 1];

      while (i <= j) {
            while (v[i] < pivot)
                  i++;
            while (v[j] > pivot)
                  j--;
            if (i <= j) {
                  tmp = v[i];
                  v[i] = v[j];
                  v[j] = tmp;
                  i++;
                  j--;
            }
      };

      if (left < j)
            quick(left, j);
      if (i < right)
            quick(i, right);
}

int main() {

    in >> n;
    for(int i = 1; i <= n; ++i) {
        in >> v[i];
    }
    quick(1, n);
    for(int i = 1; i <= n; ++i) {
        out << v[i] << " ";
    }

}