Cod sursa(job #668286)

Utilizator toniobFMI - Barbalau Antonio toniob Data 24 ianuarie 2012 17:36:34
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <fstream>
using namespace std;

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

int v[500006],n;

void quickSort(int arr[], int left, int right) {

      int i = left, j = right;

      int tmp;

      int pivot = arr[(left + right) / 2];

 

      /* partition */

      while (i <= j) {

            while (arr[i] < pivot)

                  i++;

            while (arr[j] > pivot)

                  j--;

            if (i <= j) {

                  tmp = arr[i];

                  arr[i] = arr[j];

                  arr[j] = tmp;

                  i++;

                  j--;

            }

      };

 

      /* recursion */

      if (left < j)

            quickSort(arr, left, j);

      if (i < right)

            quickSort(arr, i, right);

}

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

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

int main () {
	citire ();
	
	quickSort(v,1,n);
	
	afisare ();
	
	return 0;
}