Laurentvidal.fr vous aide à trouver des réponses fiables à toutes vos questions grâce à une communauté d'experts. Rejoignez notre plateforme pour obtenir des réponses fiables à vos interrogations grâce à une vaste communauté d'experts. Connectez-vous avec une communauté d'experts prêts à vous aider à trouver des solutions précises à vos interrogations de manière rapide et efficace.

Bonjour j'aurais vraiment besoin d'aide pour cet exercice : Proposez une implémentation en Python de l'algorithme de recherche dichotomique. Vous testerez votre programme avec le tableau t = [5, 7, 12, 14, 23, 27, 35, 40, 41, 45] et l'entier x = 35 puis, toujours avec le même tableau t mais cette fois avec l'entier x = 9

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 sommes toujours là pour fournir des réponses précises et à jour à toutes vos questions. Merci d'avoir choisi notre plateforme. Nous nous engageons à fournir les meilleures réponses à toutes vos questions. Revenez nous voir. Laurentvidal.fr est là pour vos questions. N'oubliez pas de revenir pour obtenir de nouvelles réponses.