From 98d264984d28e90e26a6250be2cbc7bd67910849 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Tue, 24 Feb 2015 10:51:22 +0100 Subject: [PATCH] TP4 dicho meilleur --- S2/TP4/tp4.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/S2/TP4/tp4.py b/S2/TP4/tp4.py index eb4b396..1d52995 100644 --- a/S2/TP4/tp4.py +++ b/S2/TP4/tp4.py @@ -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