Cod sursa(job #370878)

Utilizator catalin93Catalin Ionescu catalin93 Data 2 decembrie 2009 18:12:31
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<stdio.h>
int n,v[500001];
inline void schimb(int a, int b)
{
	int aux;
	aux = b;
	b= a;
	a = aux;
}

int partitie(int st, int dr)
{
	int poz = st,piv = v[dr];
	for(int i = st; i < dr;++i)
		if(v[i] < piv)
			schimb(v[i],v[poz++]);
	schimb(v[poz],v[dr]);	
	return poz;
}
void sort(int st, int dr)
{
	if(st >= dr)
		return ;
	int p = partitie(st,dr);
	sort(st,p-1);
	sort(p+1,dr);
}


int main()

{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);

	scanf("%d",&n);
	for(int i=1;i<=n;i++)
		scanf("%d",&v[i]);
	sort(1,n);
	for(int i = 1;i<=n;i++)
		printf("%d ",v[i]);
	return 0;
	
}