From 376da72aa9f958a5d5f1eb40b270dda05a233810 Mon Sep 17 00:00:00 2001 From: Florian Mathieu Date: Thu, 31 Mar 2022 10:57:53 +0200 Subject: [PATCH] ajout code python dichotomie --- algorithmes/DICHOTOMIQUE.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/algorithmes/DICHOTOMIQUE.md b/algorithmes/DICHOTOMIQUE.md index b1efaf3..58d3a0e 100644 --- a/algorithmes/DICHOTOMIQUE.md +++ b/algorithmes/DICHOTOMIQUE.md @@ -104,21 +104,28 @@ La recherche dichotomique est donc de complexité ***logarithmique***. ### Terminaison -Pour vérifier que la recherche dichotomique se termine bien, regardons ensemble son code python : +Pour vérifier que la recherche dichotomique se termine bien, regardons ensemble son code python - on suppose que le tableau en entrée est déjà trié. ````python def dichotomique (tab, x) ``` -:param res: booléen qui indique si un élèment x se trouve ou non dans le tableau tab :param tab: tableau contenant différents élèments déjà triés :param x: élèment recherché ``` -pass - + a = 0 # on initialise la borne inférieure + b = len(tab) - 1 # borne supérieure + while a <= b: # tant que la borne inférieure est plus petite ou égale à la borne supérieure + m = (a + b) // 2 # on se place au milieu du tableau + if tab[m] == x: # si l'élément central est l'élément recherché + return True # alors on a terminé + elif tab[m] < x: # si l'élément central est plus petit que l'élément recherché + a = m + 1 # on déplace la borne minimum vers la sous-partie droite du tableau + else: #si l'élement central n'est ni plus petit ni égal à l'élément recherché, donc s'il est >... + b = m - 1 #on déplace la borne supérieure vers la sous-partie gauche + #si après tout ça on ne trouve pas l'élément... + return False ```` - - ----------- Exercices :