Cod sursa(job #336406)

Utilizator pykhNeagoe Alexandru pykh Data 31 iulie 2009 14:38:45
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<stdio.h>
#define F(i,a,b) for(i=a;i<=b;i++)
#define N 500010
int v[N],n;

void citire()
	{
	int i;
	scanf(" %d ", &n);
	F(i,1,n)
	scanf(" %d ", &v[i]);
	}

int pozitie(int i,int j)
	{
	int ii=0,jj=-1,aux;
	while(i<j)
		{
		if(v[i]>v[j])
			{
			aux=v[i];
			v[i]=v[j];
			v[j]=aux;
			aux=-ii;
			ii=-jj;
			jj=aux;
			}
		i+=ii;
		j+=jj;
		}

	return i;
	}

void quick(int i,int j)
	{int k;
	if(i<j)
		{
		k=pozitie(i,j);
		quick(i,k-1);
		quick(k+1,j);
		}
	}

void afisare()
	{
	int i;
	F(i,1,n)
		printf("%d ",v[i]);
	}
int main()
	{
	freopen("quick.in" ,"r" ,stdin);
	freopen("quick.out" ,"w" ,stdout);
	citire();
	quick(1,n);
	afisare();
	return 0;
	}