forked from menault/TD1_DEV51_Qualite_Algo
26 lines
1.3 KiB
Plaintext
26 lines
1.3 KiB
Plaintext
Rapport TD1 :
|
|
|
|
j'ai compilé le code avec la commande :
|
|
gcc -g -pg -o student_rank student_rank.c heapsort.c bubblesort.c
|
|
|
|
J'ai exécuté le programme avec différents nombres d'étudiants et de notes avec la commande suivante :
|
|
./student_rank <Nombre etudiants> <Nombre notes par etudiants> <mode debug (0 ou 1)>
|
|
|
|
On remarque qu'avec 1000 étudiants et 1000 notes, le temps est d'environ 3 secondes et avec 5000 étudiants et 1000 notes, nous avons environ
|
|
1 minute 25, ce qui montre que le temps d'exécution est exponentiel.
|
|
|
|
Ensuite j'ai utilisé l'outil prof pour analyser le programme :
|
|
|
|
Flat profile -> le temps et le nombre d'exécution
|
|
Call graph -> Voir l'arbre d'appel fonction + le temps et le nombre d'exécution
|
|
|
|
La fonction la plus longue est bubblesort, Nbr d'appel important
|
|
|
|
j'ai enlevé l'appel de la fonction bubblesort cela réduit le nombre d'appels et on gagne un tout petit peu de temps, mais il y a un bug
|
|
|
|
Le bug de tri vient de la fonction bubblesort car le Swapped était = 1 donc j'ai modifié le et mis swepped > 0.
|
|
|
|
Quand je remplace le bublesort par le heapsort on gagne beaucoup de temps.
|
|
|
|
Après dernière vérification avec Gprof, on remarque qu'il ne manque quasiment plus grand-chose pour optimiser car la vitesse d'exécution
|
|
est très rapide |