Cod sursa(job #1013102)

Utilizator ELHoriaHoria Cretescu ELHoria Data 20 octombrie 2013 12:05:38
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <cstdio>
#include <algorithm>

using namespace std;

const int nmax = int(5e5);
int n;
int a[nmax];

void readData() {
	scanf("%d",&n);
	for(int i = 0;i < n;i++) {
		 scanf("%d",&a[i]);
	 }
}
void quickSort(int arr[], int left, int right) {
	  int i = left, j = right;
      int pivot = arr[(left + right) >> 1];
      while (i <= j) {
            while (arr[i] < pivot) i++;
            while (arr[j] > pivot) j--;
            if (i <= j) {
               swap(arr[i++],arr[j--]);
            }
      }

      if (left < j)
            quickSort(arr, left, j);
      if (i < right)
            quickSort(arr, i, right);

}

void printData() {
	for(int i = 0;i < n;i++) {
		printf("%d ",a[i]);
	}
	printf("\n");
}


int main()
{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	readData();
	quickSort(a,0,n - 1);
	printData();
	return 0;
}