Cod sursa(job #266736)

Utilizator vlad_olteanVladimir Oltean vlad_oltean Data 26 februarie 2009 00:21:43
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

int *v,n;

inline int poz(int a,int b)
{
	int t,d=0;
	while(a<b)
	{	if(v[a]>v[b])
		{	t=v[a]; v[a]=v[b]; v[b]=t;
			d=1-d;
		}
		a+=d; b-=1-d;
	}
	return a;
}

void qsort(int l,int r)
{	int k;
	if(l<r)
	{	k=poz(l,r);
		qsort(l,k-1);
		qsort(k+1,r);
	}
}

int main()
{	
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	
	scanf("%d",&n);
	v=new int[n];
	for(int i=0;i<n;i++) scanf("%d",&v[i]);
	
	qsort(0,n-1);
	
	for(int i=0;i<n;i++) printf("%d ",v[i]);
	fclose(stdin); fclose(stdout);
	return 0;
}