Files
TD1_DEV51_Qualite_Algo/Rapport.txt

26 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

2025-09-10 17:10:03 +02:00
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