Cod sursa(job #495443)

Utilizator PlayLikeNeverB4George Marcus PlayLikeNeverB4 Data 25 octombrie 2010 12:20:23
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

const int maxn=500001;

long int v[maxn];
int i,N;

int pivot(int st, int dr)
{
	int aux,di,dj;
	di=0; dj=1;
	while(st<dr)
	{
		if(v[st]>v[dr])
		{
			aux=v[st];
			v[st]=v[dr];
			v[dr]=aux;
			aux=di;
			di=dj;
			dj=aux;
		}
		st=st+di; dr=dr-dj;
	}
	return st;
}

void qsort(int st, int dr)
{
	if(st<dr)
	{
		int p=pivot(st,dr);	
		qsort(st,p-1);
		qsort(p+1,dr);
	}
	
}

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