Cod sursa(job #644440)

Utilizator informatician28Andrei Dinu informatician28 Data 6 decembrie 2011 17:06:01
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include<fstream> 
using namespace std; 
ifstream in("algsort.in");
ofstream out("algsort.out");
int v[500001];
int partitionare(int p, int r) 
{
	int i,j,pivot,pah;
	pivot=v[p];
	i=p-1; 
	j=r+1; 
	
	do
	{
		do
		{ j=j-1; 
		}while(v[j]>pivot); 
		
		do
		{
			i=i+1; 
		}while(v[i]<pivot); 
	
		if(i<j) 
		{
			pah=v[i]; 
			v[i]=v[j]; 
			v[j]=pah; 
		}
		else return j; 
	}while(i<=j);
}
	
void quicksort(int p, int r) 
{
	int q; 
	if(p<r) 
		{
			q=partitionare(p,r);
	quicksort(p,q); 
	quicksort(q+1,r);
	}
}
	
int main() 
{
	int n,i;
	in>>n; 
	for(i=1;i<=n;i++) 
		in>>v[i]; 
	
	quicksort(1,n);
	
	for(i=1;i<=n;i++) 
		out<<v[i]<<" "; 
	
	return 0; 
}