diff --git a/Compte_rendu_Berger.txt b/Compte_rendu_Berger.txt new file mode 100644 index 0000000..3e009e6 --- /dev/null +++ b/Compte_rendu_Berger.txt @@ -0,0 +1,25 @@ +Note basiques pour bien travailler + +gcc -g -pg -o student_rank student_rank.c heapsort.c bubblesort.c + +Pour lancer : + +./student_rank + +commande pour analyser le gmon.out : + gprof ./student_rank (gprof + executable) + +Première analyse : + +Je ne comprend pas trop, les valeur de bases (5 5 1) sont trop faible pour avoir un temps avec gprof + +chauqe fonction de programme est appeller entre 5 et 25 fois lors de l'éxécution je ne comprend pas encore la valeur qui suit chaque nom de fonction "[n]". + +Lors de la modification de valeurs (1000 1000 0) on constate une augmentation significative du temps d'exécution et du nombre d'appel des fonction. (2.84s) et plus de 100000 appel find_rank_student par exemple. + +==> on peu comprendre le code sans regarder le code source, grace a l'ordre par lequel les fonction sont appellée. + +optimisation du code proposé : réduire le nombre d'appels de bubblesort enlever par exemple celui dans sort_student ou find rank student +edit : find rank student n'as pas besoin d'utiliser bubblesort; en supprimant lma ligne de la fonction, pour les valeur 1000 et 10000 on passe de 30 sec a 0.05seconde d'execution. + +on prut cherrcher la petite bête et optimiser bubblesort \ No newline at end of file diff --git a/gmon.out b/gmon.out new file mode 100644 index 0000000..9bf0fe8 Binary files /dev/null and b/gmon.out differ diff --git a/student_rank b/student_rank new file mode 100755 index 0000000..19c9b3b Binary files /dev/null and b/student_rank differ diff --git a/student_rank.c b/student_rank.c index af84003..c866405 100644 --- a/student_rank.c +++ b/student_rank.c @@ -55,7 +55,7 @@ int find_rank_student(int student_grade, int* grades_array, int students_number) { int position = -1; int i = 0; - bubblesort(grades_array,students_number); + // bubblesort(grades_array,students_number); for(i = students_number-1; i >= 0; i--) { if(grades_array[i] == student_grade)