Una soluzione non molto "didattica" ma molto molto comoda è usare la funzione qsort della libreria standard C.