Cod sursa(job #240761)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 8 ianuarie 2009 17:04:53
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
# include <stdio.h> 
# define  nmax 500001
int i,N, a[nmax];
void quik(int st, int dr)
{
  int i=st,j=dr,p=a[st],aux;
  if (dr<=st) return;
  while (i<j){
    while (a[i]<=p && i<j) i++;
    while (p<a[j] && j>=i) j--;
    if (i<j) {
	aux=a[i];a[i]=a[j]; a[j]=aux;
	i++; j--;
	}
  }
  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;   
}