Cod sursa(job #240512)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 7 ianuarie 2009 19:50:01
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.58 kb
# include <stdio.h> 
# define  nmax 500001
int i,N, a[nmax];
void quik(int st, int dr)
{
  int i=st-1,j=dr,p=a[st],aux;
  if (dr<=st) return;
  while (i<=j){
    while (a[++i]<p && i<j);
    while (p<a[--j] && j>=i);
    if (i<j) {
	aux=a[i];a[i]=a[j]; a[j]=aux;
	}
  }
  a[st]=a[j];
  a[j]=p;
  quik(st,i-1);
  quik(i+1,dr);
}
int main()
{

    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    scanf("%d",&N);
    for (i=1;i<=N;i++)
	scanf("%d ",&a[i]);
    quik(1,N);
    for (i=1;i<=N;i++)
      printf("%d ",a[i]);
    return 0;   
}