Cod sursa(job #1066695)

Utilizator NCodeMihai X NCode Data 25 decembrie 2013 14:23:29
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.85 kb
#include <stdio.h>
#include <fstream>
#include <iostream>
using namespace std;
int n,a[500008];


int part( int a[], int l, int r) {
	 int pivot, i, j, t;
	 pivot = a[l];
	 i = l; 
	 j = r+1;
		
	 while(1)
	 {
		do ++i; while( a[i] <= pivot && i <= r );
		do --j; while( a[j] > pivot );
		if( i >= j ) break;
		t = a[i]; a[i] = a[j]; a[j] = t;
	 }
	 t = a[l]; 
	 a[l] = a[j]; 
	 a[j] = t;
	 return j;
}

inline void quickSort( int a[], int l, int r)
{
	 int j;

	 if( l < r ) 
	 {
		
	j = part( a, l, r);
	quickSort( a, l, j-1);
	quickSort( a, j+1, r);
	 }
	
}

int main() 
{
   ifstream in ("algsort.in");
  ofstream out ("algsort.out");

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

	quickSort( a, 0, n);


	for(i = 1; i <=n; i++)
		out<<a[i]<<" ";
		
	return 0;
}