Académique Documents
Professionnel Documents
Culture Documents
1 Le nom de l’algorithme et la classe de complexité devront être les deux justes pour avoir 0.25, sinon c’est un zéro
2
Une réponse fausse annule une réponse juste.
Exercice 02 (1 + 1 + 1 + 1 + 1.5 + 0.5 = 6 points):
1. Fonction RechDicho(Tab :Tableau, bi, bs, x 2. Fonction RechSeqLLCbd (L :ListeBD, x :
:entier) : entier [vue en chapitre de entier) : * maillonBD [vue en TD4 pour
récursivité] LLC unidirectionnelle
Si (bi<=bs) alors Si L.Tete = Nil alors retourner (Nil)
mil (bi+bs) DIV 2 ; Sinon
Si (Tab[mil]=x) Alors retourner (mil) Si valeur (L.Tete) = x alors retourner (L.Tete)
Sinon Sinon
Si (Tab[mil]>x) Alors L.Tete suivant (L.Tete)
Retourner (RechDicho(Tab, bi, mil-1, x)) retourner (RechSeqLLCbd (L, x))
Sinon
Retourner(RechDicho(Tab, mil+1, bs, x))
Sinon Retourner (-1)
3. Fonction RechMilieuLLCbd(L :ListeBD) : * 4. Fonction RechDichoLLCbd(L :ListeBD, x
maillonBD :entier) : *MaillonBD
Var T, Q : * MaillonBD Si (L.tete= Nil) ou (L.queue= Nil) alors
T = L.Tete ; Q = L.Queue; Retourner (Nil)
TQ ((T≠Nil)et(Q≠Nil)et ((T ≠ Q) ou (precedent(T) Sinon
≠ Q))) mil RechMilieurLLCbd(L);
{ Si (valeur(mil)=x) Alors retourner (mil)
T suivant(T); Sinon
Q precedent(Q); Si (valeur (mil)>x) Alors
} L.Queue precedent (mil)
retourner Q; Retourner (RechDichoLLCbd (L, x))
} Sinon
L.tete suivant (mil)
Retourner(RechDichoLLCbd (L, x))
Calcul de Complexité
RechDichoTab [vu en RechSeqLLCbd RechDichoLLCbd
cours]
n : la taille du tableau n : la taille de la liste n : la taille de la liste
T(n) = T(n /2) + c T(n) = T(n-1) + c T(n) = T(n /2) +
En appliquant le THM2 En appliquant le THM1 TRechMilieu(n)
avec a = 1, b = 2 et k = 0, avec a = 1 et T(0) = 0, TRechMilieu(n) = n/2 + b
on trouve on trouve TRechMilieu(n) = O(n)
T(n) = O (log2 (n)) En appliquant le THM2
avec a = 1, b = 2 et k = 1,
Donc T(n) = O(n) on trouve
T(n) = O (n)
Classe Logarithmique Linéaire Linéaire
Conclusion
Nombre de parcours de LLC Log2 (n) fois (A chaque fois on Une seule fois
divise la liste en deux)
3.a déroulement