Il C mette già a disposizione in stdlib.h una funzione per l'ordinamento molto versatile, ovvero la .
Questo è un esempio di come utilizzarla con un vettore di interi:
#include <stdio.h>
#include <stdlib.h>
#define N 10
typedef int (*ptr) (const void *a, const void *b);
int cmp(int *a,int *b)
{
return (*a-*b);
}
int main()
{
int vett[N]={4,304,45,3,7,9,19,405,-10,56};
int i;
qsort(vett,N,sizeof(int),(ptr)cmp);
puts("Vettore ordinato:");
for(i=0;i<N;i++)
printf("%d\n",vett[i]);
return 0;
}
L'unica cosa un po' particolare è la scrittura della funzione cmp, ma in sostanza deve soltanto agire come la strcmp() con 2 elementi generici della base dati che si desidera ordinare.