Cod sursa(job #277008)

Utilizator jupanubv92Popescu Marius jupanubv92 Data 11 martie 2009 14:19:20
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include<stdio.h>

int a[500001];
int n;

void sort(int st,int dr)
{
  int pivot=a[(st+dr)/2];
  int i=st;
  int j=dr;
  while(i<=j)
   {
    while(a[i]<pivot) i++;
    while(a[j]>pivot) j--;
    if(i<=j)
     {int aux=a[i];
      a[i]=a[j];
      a[j]=aux;
      i++;j--;}
   }
  if(st<j) sort(st,j);
  if(i<dr) sort(i,dr);
}


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