Cod sursa(job #434269)

Utilizator btamasyaBorsos Tamas btamasya Data 5 aprilie 2010 15:40:03
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<iostream.h>
#include<fstream.h>
long int a[500001],n;
int diva (int,int);
int diva (int p,int q)
{
	int st=p,dr=q,x=a[p];
	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;
}
void qs (int p, int q)
{
	int m=diva(p,q);
	if (m-1>p) qs(p,m-1);
	if (m+1<q) qs(m+1,q);
}
int main()
{
	int i;
	fstream f,g;
	f.open("algsort.in",ios::in);
	g.open("algsort.out",ios::out);
	f>>n;
	for (i=0;i<n;i++)
		f>>a[i];
	qs (0,n-1);
	for (i=0;i<n;i++)
		g<<a[i]<<" ";
}