From 71b9841e8826e36573c60b7abad2391f6bd89432 Mon Sep 17 00:00:00 2001 From: mommeja Date: Wed, 10 Sep 2025 16:27:36 +0200 Subject: [PATCH] new file: "R\303\251sultat.txt" modified: bubblesort.c new file: gmon.out modified: student_rank.c --- Résultat.txt | 53 +++++++++++++++++++++++++++++++++++++++++++++++++ bubblesort.c | 2 +- gmon.out | Bin 0 -> 3820 bytes student_rank | Bin 0 -> 21792 bytes student_rank.c | 1 - 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 Résultat.txt create mode 100644 gmon.out create mode 100755 student_rank diff --git a/Résultat.txt b/Résultat.txt new file mode 100644 index 0000000..069614a --- /dev/null +++ b/Résultat.txt @@ -0,0 +1,53 @@ +J'ai essayé avec 100000 étudiant et 10000 notes sans debug, ça prend beacoup de temps +Ensuite avec 1000 étudiant et 1000 notes, ça prend environ 3 secondes. +Puis avec 5 fois plus d'étudiant, ça prend 1 minutes et 18 secondes. + +Avec 1000 étudiants et 1000 notes sans debug on utilise gprof pour le profiling. +On peut voir que les fonctions qui prennent le plus de temps sont find_rank_student et bubblesort avec bubblesort qui prend 81.43 % du temps d'exécution. + + % cumulative self self total + time seconds seconds calls s/call s/call name + 81.43 2.39 2.39 1001000 0.00 0.00 bubblesort + 18.40 2.93 0.54 1000000 0.00 0.00 find_rank_student + 0.34 2.94 0.01 1 0.01 2.94 sort_students + 0.00 2.94 0.00 1000 0.00 0.00 generate_array + 0.00 2.94 0.00 2 0.00 0.00 free_array + 0.00 2.94 0.00 1 0.00 0.00 generate_grades + 0.00 2.94 0.00 1 0.00 0.00 generate_ranks + +index % time self children called name + 0.01 2.93 1/1 main [2] +[1] 100.0 0.01 2.93 1 sort_students [1] + 0.54 2.39 1000000/1000000 find_rank_student [3] + 0.00 0.00 1000/1001000 bubblesort [4] +----------------------------------------------- + +[2] 100.0 0.00 2.94 main [2] + 0.01 2.93 1/1 sort_students [1] + 0.00 0.00 2/2 free_array [6] + 0.00 0.00 1/1 generate_grades [7] + 0.00 0.00 1/1 generate_ranks [8] +----------------------------------------------- + 0.54 2.39 1000000/1000000 sort_students [1] +[3] 99.6 0.54 2.39 1000000 find_rank_student [3] + 2.39 0.00 1000000/1001000 bubblesort [4] +----------------------------------------------- + 0.00 0.00 1000/1001000 sort_students [1] + 2.39 0.00 1000000/1001000 find_rank_student [3] +[4] 81.3 2.39 0.00 1001000 bubblesort [4] +----------------------------------------------- + 0.00 0.00 1000/1000 generate_grades [7] +[5] 0.0 0.00 0.00 1000 generate_array [5] +----------------------------------------------- + 0.00 0.00 2/2 main [2] +[6] 0.0 0.00 0.00 2 free_array [6] +----------------------------------------------- + 0.00 0.00 1/1 main [2] +[7] 0.0 0.00 0.00 1 generate_grades [7] + 0.00 0.00 1000/1000 generate_array [5] +----------------------------------------------- + 0.00 0.00 1/1 main [2] +[8] 0.0 0.00 0.00 1 generate_ranks [8] +----------------------------------------------- + +Il faut supprimer le bubblesort qui est dans la fonction find_rank_student pour gagner du temps sauf qu'on ne gagne pas assez de temps pour passer en dessous d'une secondes. \ No newline at end of file diff --git a/bubblesort.c b/bubblesort.c index a848827..7961fe4 100644 --- a/bubblesort.c +++ b/bubblesort.c @@ -14,7 +14,7 @@ void bubblesort(int* array, int length) tmp = array[i-1]; array[i-1] = array[i]; array[i] = tmp; - swapped++; + swapped = 1; } } } while(swapped==1); diff --git a/gmon.out b/gmon.out new file mode 100644 index 0000000000000000000000000000000000000000..002973fc1bc96d569e8908f4341e6ee1ac840bae GIT binary patch literal 3820 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 QP5*W;h>A2c4QN~j01hLs&Hw-a literal 0 HcmV?d00001 diff --git a/student_rank.c b/student_rank.c index af84003..c6dc75a 100644 --- a/student_rank.c +++ b/student_rank.c @@ -55,7 +55,6 @@ int find_rank_student(int student_grade, int* grades_array, int students_number) { int position = -1; int i = 0; - bubblesort(grades_array,students_number); for(i = students_number-1; i >= 0; i--) { if(grades_array[i] == student_grade)