Cod sursa(job #472495)

Utilizator nicolaetitus12Nicolae Titus nicolaetitus12 Data 25 iulie 2010 13:24:18
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#define N 10000
int mat[N];
void sort(int st,int dr)
{int s=st,d=dr,aux,offset=rand()%(dr-st+1),p=mat[st+offset];
 while(s<d)
 {while(mat[s]<p)s++;
  while(mat[d]>=p)d--;
  if(s<d)
  {aux=mat[s];
   mat[s]=mat[d];
   mat[d]=aux;
   s++;
   d--;
  }
 }
 if(st<d)
  sort(st,d);
 if(s<dr)
  sort(s,dr);
}

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