diff --git a/rapport.md b/rapport.md new file mode 100644 index 0000000..315f5e7 --- /dev/null +++ b/rapport.md @@ -0,0 +1,29 @@ +# Exercice 2) +### Fonction 1 : +Dans cette fonction nous avons deux tableaux, un tableau 1 de longueur `n`et un tableau 2 de longueur `m`. Nous allons itérer sur tous les éléments du tableau 1, donc la complexité de cette boucle est de `O(n)`. Ensuite, nous allons itérer sur tous les éléments du tableau 2 et vérifier si l'élément du tableau 1 est égal à l'élément du tableau 2, donc dans le meilleur des cas, la complexité de cette boucle est de `O(n)`, mais dans le pire des cas, la complexité est de `O(n*m)`. Donc la complexité globale de cette fonction est de `O(n*m)`. + +### Fonction 2 : +La complexité est de `O(x)` car on fait une boucle qui va itérer `x` fois, jusqu'à ce que `x` soit égale à 0. Dans cette boucle nous allons réaliser deux opérations avec une complexité de `O(1)`, ce qui ne change pas la complexité globale qui restera à `O(x)`. + +### Fonction 3 : +On retrouve trois blocs conditionnels qui ont chacun un coup de `O(1)` et une seule condition peut être vraie. Donc la complexité globale de cette fonction est de `O(1)` + + +# Exercice 3) +### Fonction `sort_students` : + +Dans la fonction `sort_students` nous retrouvons une première boucle qui va itérer sur `grades_number` qu'on va noté `n` et qui englobe toute la fonction. +
+Dans cette boucle nous allons faire une allocation mémoire avec `malloc` qui a une complexité de `O(1)`, ce qui veut dire que la complexité de cette boucle est de `O(n * 1) = O(n)`. +
+Ensuite, nous avons une deuxième boucle qui va itérer sur `students_number` qu'on va noté `m`. Dans cette boucle nous copions les notes des étudiants pour les mettre dans le tableau `grades`. Nous effectuons cette opération `n` fois, donc la complexité globale de la fonction est de `O(n * m)`. +
+Après nous appelons la fonction `bubble_sort` avec le tableau `grades` et `students_number` comme arguments. `bubble_sort` qui est une fonction de tri, où dans le pire des cas, la complexité est de `O(m^2)`. Donc la complexité globale de la fonction `sort_students` est de `O(n * m + m^2) = O(n * m^2)`. +
+Nous retrouvons une dernière boucle qui va itérer sur `students_number`, donc la complexité de cette boucle est de `O(m)`. Dans cette boucle nous allons appeler la fonction `find_rank_student`. + +### Fonction `find_rank_student` : +Cette fonction appelle la fonction `bubble_sort` avec le tableau `grades_array` et `students_number` comme arguments. `bubble_sort` qui est une fonction de tri, où dans le pire des cas, la complexité est de `O(m^2)`. Ensuite, nous avons une boucle qui va itérer sur `students_number`, donc la complexité de cette boucle est de `O(m)`. Donc la complexité globale de la fonction `find_rank_student` est de `O(m^2 + m) = O(m^2)`. + +### Fonction `sort_students` : +La complexité de la fonction `find_rank_student` est de `O(m^2)`, et nous l'appelons `m` fois, donc la complexité globale de la fonction `sort_students` est de `O(n * m^2 + m * m^2) = O(n * m^2 + m^3) = O(n*m^3)`. \ No newline at end of file