Solution TD N 01
Solution TD N 01
Solution TD N 01
Exercice 1.
Etant donné la procédure suivante.
Var i, j, k: entier;
𝑇(𝑛, 𝑚, 𝑝) = 𝑐1 ∗ (𝑛 + 1) + 𝑐2 ∗ n ∗ (m + 1) + c3 ∗ n ∗ m + c4 ∗ n ∗ m ∗ (p + 1)
+ c5 ∗ n ∗ m ∗ p
𝑆𝑖 𝑛 = 𝑚 = 𝑝
𝑇 (𝑛) = 𝑐1 ∗ (𝑛 + 1) + 𝑐2 ∗ n ∗ (n + 1) + c3 ∗ n ∗ n + c4 ∗ n ∗ n ∗ (n + 1) + c5 ∗ n ∗ n ∗ n
𝑇 (𝑛 ) = 𝐴 ∗ 𝑛 3 + 𝐵 ∗ 𝑛 2 + 𝐶 ∗ 𝑛 + 𝐷
1
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
Exercice 2.
Fin pour ;
Fin pour ;
Fin.
2
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
Exercice 3 :
Var i : entier ;
Debut
𝑓𝑎𝑐𝑡 ← 1;
𝑓𝑎𝑐𝑡 ← 𝑓𝑎𝑐𝑡 ∗i ;
Fin pour
Fin.
𝑁! 𝑁 ∗ (𝑁 − 1) ∗ (𝑁 − 2) ∗ … ∗ (𝑁 − 𝑃 + 1) ∗ (𝑁 − 𝑃) ∗ … ∗ 2 ∗ 1
𝐶𝑁𝑃 = =
𝑃! ∗ (𝑁 − 𝑃)! 𝑃! ∗ (𝑁 − 𝑃)!
𝑁 ∗ (𝑁 − 1) ∗ (𝑁 − 2) ∗ … ∗ (𝑁 − 𝑃 + 1)
=
𝑃!
Nous avons alors simplifié par le facteur (𝑁 − 𝑃 ) !; cela qui nous fait gagner 2*(N-P-1)
multiplications. Ce qui n’est pas négligeable.
Debut
𝑐𝑜𝑚𝑏 ← 𝑁 − 𝑃 + 1 ;
𝑐𝑜𝑚𝑏 ← 𝑐𝑜𝑚𝑏 ∗i ;
Fin pour
𝑐𝑜𝑚𝑏 ← 𝑐𝑜𝑚𝑏/𝑓𝑎𝑐𝑡(𝑃);
Retourner (comb) ;
Fin.
3
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
Exercice 4.
Debut
𝑠𝑜𝑚𝑚𝑒 ← 1;
𝑦 ← 𝑥;
𝑠𝑜𝑚𝑚𝑒 ← 𝑠𝑜𝑚𝑚𝑒 + 𝑖 ∗ 𝑦;
𝑦 ←𝑦∗𝑥;
Fin pour ;
Fin.
4
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
Exercice 5.
Algorithme max ;
Debut
Lire (n) ;
𝑚𝑎𝑥 ← 𝑇[1];
Si 𝑇[𝑖]>max alors
𝑚𝑎𝑥 ← 𝑇[𝑖];
Fin pour
Ecrire (max) ;
Fin.
3. L’algorithme est optimal car tout élément excepté le max doit avoir perdu une
comparaison, sinon on ne peut pas savoir qu’il n’est pas le max. Ce qui donne lieu à n-1
comparaisons.
5
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
Exercice 6.
Algorithme recherche ;
trouve : booleen ;
Debut
Lire (n, x) ;
𝑡𝑟𝑜𝑢𝑣𝑒 ← 𝑓𝑎𝑢𝑥;
𝑖 ← 1;
𝑡𝑟𝑜𝑢𝑣𝑒 ← 𝑣𝑟𝑎𝑖;
Fin si ;
𝑖 ← 𝑖 + 1;
Sinon
Fin Si ;
Fin.
6
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
• Dans le meilleur des cas : le meilleur des cas de cet algorithme est que l’élément x
se trouve dans la case T[1] donc on a deux comparaisons T(n)=2 comparaisons. Son
ordre de grandeur est O(1).
Le principe est : on accède à la valeur centrale du tableau qu’on compare à l’élément recherché.
Il y a trois cas de figure :
On recommence la recherche avec un tableau dont la taille est divisée par deux. On arrête la
recherche lorsqu’on tombe sur la valeur recherchée ou lorsqu’on se retrouve avec un tableau
contenant un seul élément.
Exemple avec n = 8
Niveau 1
Niveau 2
Niveau 3
Sachant qu'à chaque comparaison de l’élément recherché avec l’élément central, si ce dernier
n’est pas égal à l’élément recherché, une division du tableau en deux est effectuée. Donc, le
nombre de comparaisons est égale au nombre de divisions (nombre de niveaux) +1 (1 s’agit de
la dernière comparaison).
Au pire des cas : l’élément recherché n’existe pas dans le tableau ou il est retrouvé à la dernière
itération (dernière comparaison).
7
Université de Bejaia Niveau : Master 1 MI
Faculté des Sciences Exactes Module : Programmation Avancée
Département D’Informatique Année d’étude 2021/2022
𝑛
Mathématiquement cela se traduit par l'équation 2𝑘 = 1 avec k le nombre de fois qu'il faut
diviser n par 2 pour obtenir 1 (nombre de niveaux).
𝑛
= 1 donc 𝑛 = 2𝑘
2𝑘
Dans le cas général, pour n non nécessairement égal à une puissance de 2, le nombre de
comparaisons est dans l’intervalle :
1+⌊𝑙𝑜𝑔2 𝑛 ⌋≤T(n)≤1+⌈𝑙𝑜𝑔2 𝑛⌉
Au meilleur des cas : l’élément recherché est retrouvé à la première itération donc t(n)=1
comparaison.