Cod sursa(job #1788337)

Utilizator SenibelanMales Sebastian Senibelan Data 25 octombrie 2016 21:52:52
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define NR_MARE 500010

using namespace std;

int n, v[NR_MARE];

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


void Read(){
  in >> n;
  for(int i = 1; i <= n; ++i)
    in >> v[i];
}

void Quicksort(int left, int right){
  int i = left, j = right, aux, pivot;
  pivot = v[(left + right) / 2];
  while(i <= j){
    while(v[i] < pivot)i++;
    while(v[j] > pivot)j--;
    if(i <= j){
      aux = v[i];
      v[i] = v[j];
      v[j] = aux;
      i++;
      j--;
    }
  }
  if(left < j)
    Quicksort(left, j);
  if(right > i)
    Quicksort(i, right);
}

void Print(){
  for(int i = 1; i <= n; ++i){
    out << v[i] << " ";
  }
  out << "\n";
}


int main(){
  Read();
  Quicksort(1, n);
  Print();
}