Cod sursa(job #240968)

Utilizator eugen.nodeaEugen Nodea eugen.nodea Data 8 ianuarie 2009 23:11:34
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
# include <stdio.h>    
# define  nmax 500001
int i,N, a[nmax];
void quick(int st, int dr)
{
  int i=st,j=dr,p=a[(st+dr)/2],aux;
  if (dr<=st) return;
  while (i<=j){
    while (a[i]<p) i++;
    while (p<a[j]) j--;
    if (i<=j) {
    aux=a[i];a[i]=a[j]; a[j]=aux;
    i++; j--;
    }
  }
  if (st<j) quick(st,j);
  if (i<dr) quick(i,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]);
    quick(1,N);
    for (i=1;i<=N;i++)
      printf("%d ",a[i]);
    return 0;      
}