TP4 dicho meilleur

This commit is contained in:
Geoffrey Frogeye 2015-02-24 10:51:22 +01:00
parent dee1ef0514
commit 98d264984d

View file

@ -34,9 +34,14 @@ def seqTrie(l, a, b, x): # Jean-loup
def dicho(l, a, b, x): # Geoffrey
"""
list, int, int, a (bool, int)
Renvoie la position d'un élément x dans la liste l
aux bornes a et b par dichotomie.
Renvoie un tuple contenant un booléen indiquant si l'élément x est dans la liste l entre les
bornes [a, b[, ainsi que sa position le cas échéant, -1 sinon, par dichotomie.
CU : l une liste, a et b des ints tels que 0 a < b len(l)
"""
assert(type(l) == list), "l doit être une liste"
assert(type(a) == type(b) == int), "a et b doivent être des ints"
assert(0 <= a < b <= len(l)), "Il faut que 0 ≤ a < b ≤ len(l)"
a = d
f = b - 1
while d < f:
@ -45,7 +50,8 @@ def dicho(l, a, b, x): # Geoffrey
d = m+1
else:
f = m
return x == l[d]
est_dedans = x == l[d]
return (est_dedans, d if x == l[d] else -1)
question(2) # Utiliser LEXIQUE