En ce qui concerne le deuxième exercice, mis-à-part le codage des fonctions de tri, la partie servant à comparer les performances est plutôt simple. Voyez ci-dessous par vous même:
int comparer_performances() { int Tab1[1000], Tab2[1000], Tab3[1000], Tab4[1000], Tab5[1000]; int longueur = 1000; int i, temp; for (i = 0; i < longueur; ++i) { //Il faut appeler la fonction rand() une seule fois par tour de boucle, il faut sauvegarder la valeur // qu'elle renvoie et l'assigner à la même case "i" dans chaque tableau. // Si vous l'appelez pour chaque tableau, vous obtiendrez 5 tableaux différents et vous n'aurez pas le // même jeu de valeurs pour chacune des fonctions, ce qui fait que votre comparaison ne sera pas // équitable, il est même possible qu'elle soit erronée. temp = rand(); Tab1[i] = temp; Tab2[i] = temp; Tab3[i] = temp; Tab4[i] = temp; Tab5[i] = temp; } clock_t debut, fin, duree; // Il est préférable d'utiliser le type "clock_t" // mais si vous utilisez le type "int" ou "long", ça va également fonctionner. /* * Tri selection */ debut = clock(); tri_selection(); fin = clock(); duree = fin - debut; printf("La fonction tri_selection a pris %d ticks d'horloge pour s'exécuter.", duree); /* * Tri insertion */ debut = clock(); tri_insertion(); fin = clock(); duree = fin - debut; printf("La fonction tri_insertion a pris %d ticks d'horloge pour s'exécuter.", duree); /* * Tri rapide */ debut = clock(); tri_rapide(); fin = clock(); duree = fin - debut; printf("La fonction tri_rapide a pris %d ticks d'horloge pour s'exécuter.", duree); /* * Et cetera (etc...) */ return 0; }