From 98d264984d28e90e26a6250be2cbc7bd67910849 Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Tue, 24 Feb 2015 10:51:22 +0100 Subject: [PATCH 1/2] 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 From 3b15233c4f8b1a5883a71107807b04947ec1b67c Mon Sep 17 00:00:00 2001 From: Geoffrey Frogeye Date: Tue, 24 Feb 2015 10:54:12 +0100 Subject: [PATCH 2/2] =?UTF-8?q?TP4=20Test=20si=20LEXIQUE=20est=20tri=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- S2/TP4/tp4.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/S2/TP4/tp4.py b/S2/TP4/tp4.py index 1d52995..bdac47d 100644 --- a/S2/TP4/tp4.py +++ b/S2/TP4/tp4.py @@ -59,6 +59,18 @@ from lexique import * squestion('a') # Vérifier que LEXIQUE est triée +def est_trie(l): + """ + list → bool + Indique si la liste l est triée dans l'ordre croissant + """ + for i in range(len(l)-1): + if not l[i] < l[i+1]: + return False + return True + +print("Le test indiquant si LEXIQUE est trié retourne %s" % est_trie(LEXIQUE)) + squestion('b') # Effectuer de nombreuses recherches de LEXIQUE # et comparer les temps d'éxécution selon les # algorithmes utilisés \ No newline at end of file