In realtà il C mette a disposizione una funzione di ordinamento nell'header stdlib.h, che si utilizza più o meno così:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100000
int cmp(void const *a, void const *b);
int main(void)
{
int vett[N],i;
clock_t c_start, c_end;
double TempoImpiegato;
srand(time(0));
for (i=0;i<N;i++)
vett[i] = 1+rand()%100;
c_start=clock();
qsort(vett,N,sizeof(int),cmp);
c_end=clock();
TempoImpiegato = (double)(c_end - c_start) / CLOCKS_PER_SEC;
printf("Tempo impiegato -> %5.5f secondi\n\n", TempoImpiegato);
return 0;
}
int cmp(const void *a, const void *b)
{
int first=*(int *)a;
int second=*(int *)b;
if(first>second)
return 1;
if(first<second)
return -1;
return 0;
}