Cod sursa(job #639702)

Utilizator Agent008Cristi Poputea Agent008 Data 23 noiembrie 2011 19:58:08
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream.h>
#include<iostream.h>
fstream f("algsort.in",ios::in), g("algsort.out",ios::out); 
int divide(int st,int dr);
void quicksort(int p,int q);
int a[500100],n;
int main()
{
	int i;
	f>>n;
	for(i=0;i<n;i++)
		f>>a[i];
	quicksort(0,n-1);
	for(i=0;i<n;i++)
		g<<a[i]<<" ";
	return 0;
}
void quicksort(int p,int q)
{
	int m=divide(p,q);
	if(m-1>p)
		quicksort(p,m-1);
	if(m+1<q)
		quicksort(m+1,q);
}
int divide(int st,int dr)
{
	int x=a[st];
	while(st<dr)
	{
		while(st<dr && a[dr]>=x)
			dr--;
		a[st]=a[dr];
		while(st<dr && a[st]<=x)
			st++;
		a[dr]=a[st];
	}
	a[st]=x;
	return st;
}