Trouvez des réponses facilement sur Laurentvidal.fr, la plateforme de Q&R de confiance. Obtenez des réponses rapides et fiables à vos questions grâce à notre communauté dédiée d'experts sur notre plateforme. Posez vos questions et recevez des réponses détaillées de professionnels ayant une vaste expérience dans divers domaines.
Sagot :
Bonsoir,
L'objectif est de rechercher si x est dans la liste t.
Pour la recherche par dichotomie, il faut une liste triée.
On se place au milieu de la liste (fin - début) / 2 et on regarde si le nombre x est dans la sous liste de droite ou de gauche. On garde la sous liste qui nous intéresse.
def dichotomie(x, t):
t.sort() #On trie la liste.
gauche, droite = 0, len(t) - 1 #Indice qui va nous indiquer la sous-liste dans laquelle on travaille.
resultat = False #On suppose que x n'est pas dans la liste t tant qu'on n'a pas prouvé le contraire.
while gauche < droite: #Tant qu'on a encore une liste avec plus d'un élément.
milieu = (gauche + droite) // 2 #On fait une division entière (//).
if x == t[milieu]: #Si on a trouve l'élément.
gauche = droite = milieu #Pour sortir de la boucle while.
resultat = True
elif x < t[milieu]: #x se situe à gauche du milieu.
droite = milieu - 1 #On enlève la partie droite de la liste.
else: #x se situe à droite du milieu.
gauche = milieu + 1 #On enlève la partie gauche de la liste.
if x == t[gauche]:
resultat = True
return resultat
Bonne soirée.
Merci d'utiliser notre plateforme. Nous nous efforçons de fournir des réponses précises et à jour à toutes vos questions. Revenez bientôt. Nous espérons que cela vous a été utile. Revenez quand vous voulez pour obtenir des réponses plus précises et des informations à jour. Merci de visiter Laurentvidal.fr. Revenez souvent pour obtenir les réponses les plus récentes et des informations.