Cod sursa(job #260329)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 16 februarie 2009 22:03:57
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.56 kb
#include <cstdio>
#define N 500001
long a[N];
void sort(int left, int right)
{int l=left,r=right,e=a[(left+right)/2],aux;
 while(l<r)
 {while(a[l]<e)l++;
  while(a[r]>e)r--;
  if(a[l]>=a[r])
  {aux=a[l];
   a[l]=a[r];
   a[r]=aux;
   l++;
   r--;
  }
 }
 if(r>left)
  sort(left,r);
 if(l>right)
  sort(right,l);
}

int main ()
{freopen("algsort.in","r",stdin);
 freopen("algsort.out","w",stdout);
 int n,i;
 scanf("%d",&n);
 for (i=0;i<n;i++)
 {scanf("%d",&a[i]);
 }
 sort(0,n-1);
 for (i=0;i<n;i++)
 {printf("%d ",a[i]);
 }
 return 0;
}