![](//s1.studylibfr.com/store/data-gzf/0e7ba10066afb519be7005d0d824f450/1/009184497.htmlex.zip/bg3.jpg)
en algorithmique :
PlusGrandIndice2(T, n, v) : entier
Entrées : T un tableau, n sa dimension, v une valeur
Sorties : valeur du plus grand indice contenant v ou 0 s’il n’en
existe pas
Données : i:entier
pour i <- n à 1 faire
si v = T[i] alors
retourner i
finsi
finpour
retourner 0
Exercice 3: Recherche dans un tableau trié
On suppose maintenant que le tableau T est trié.
1. Ecrire un programme python qui renvoie un indice i(quelconque) tel que T[i] = vou -1 s’il n’en
existe pas. Le principe du programme est le suivant :
(a) Il calcule milieu = (n+ 1)/2et il compare vavec T[milieu]. S’il y a égalité, il renvoie
milieu.
(b) Sinon si v < T [milieu]et milieu > 1, il s’appelle récursivement avec pour entrée la partie
de Tallant de 0 à milieu −1et renvoie le résultat de cet appel.
(c) Sinon si v > T [milieu]et milieu < n, il s’appelle récursivement avec pour entrée la partie
de Tallant de milieu + 1 àn−1et renvoie le résultat de cet appel.
(d) Sinon il renvoie -1 (i.e., pas trouvé).
2. Modifier l’algorithme pour qu’il renvoie le plus petit indice comme dans la question 1.
1. def chercheTableauTrie (T, v, deb, fin):
milieu = (deb+fin)/2
if T [milieu] == v:
return milieu
elif (v > T [milieu] and milieu < len (T) - 1):
return chercheTableauTrie (T, v, milieu+1, fin)
elif (v < T [milieu] and milieu > 0):
return chercheTableauTrie (T, v, deb, milieu-1)
else:
return -1
T = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(chercheTableauTrie (T, 7, 0, len (T) - 1))
print(chercheTableauTrie (T, 10, 0, len (T) - 1))
print(chercheTableauTrie (T, 12, 0, len (T) - 1))