Compte rendu
This commit is contained in:
parent
ca552281c9
commit
f63502536c
25
Compte_rendu_Berger.txt
Normal file
25
Compte_rendu_Berger.txt
Normal file
@ -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 <Nombre etudiants> <Nombre notes par etudiants> <mode debug (0 ou 1)>
|
||||||
|
|
||||||
|
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
|
BIN
student_rank
Executable file
BIN
student_rank
Executable file
Binary file not shown.
@ -55,7 +55,7 @@ int find_rank_student(int student_grade, int* grades_array, int students_number)
|
|||||||
{
|
{
|
||||||
int position = -1;
|
int position = -1;
|
||||||
int i = 0;
|
int i = 0;
|
||||||
bubblesort(grades_array,students_number);
|
// bubblesort(grades_array,students_number);
|
||||||
for(i = students_number-1; i >= 0; i--)
|
for(i = students_number-1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
if(grades_array[i] == student_grade)
|
if(grades_array[i] == student_grade)
|
||||||
|
Loading…
Reference in New Issue
Block a user