Cod sursa(job #650173)

Utilizator Alexandru13Dumitraiche Marius-Alexandru Alexandru13 Data 17 decembrie 2011 15:05:19
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
#include<stdlib.h>
int a[500001],n;
void quick(int st,int dr,int a[500001])
{
	int i=st,j=dr,p,aux;
	p=a[i+rand()%(j-i)];
	while(i<=j)
	{
		while(a[i]<p)++i;
		while(a[j]>p)--j;
		if(i<=j)
		{	aux=a[i];a[i]=a[j];a[j]=aux;++i;--j;}
	}
	if(st<j)
		quick(st,j,a);
	if(i<dr)
		quick(i,dr,a);
}
int main()
{
	freopen("algsort.in","r",stdin);
	freopen("algsort.out","w",stdout);
	int i;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
		scanf("%d ", &a[i]);
	quick(1,n,a);
	for(i=1;i<=n;i++)
		printf("%d ", a[i]);
	return 0;
}