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.

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 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.