Maison > développement back-end > Tutoriel Python > Comment puis-je effectuer efficacement une recherche binaire vrai/faux en Python ?

Comment puis-je effectuer efficacement une recherche binaire vrai/faux en Python ?

Barbara Streisand
Libérer: 2024-11-26 01:40:14
original
1067 Les gens l'ont consulté

How Can I Efficiently Perform a True/False Binary Search in Python?

Recherche binaire en Python : approche améliorée

En Python, la recherche binaire est effectuée sans effort via le module bisect. Cependant, si une indication précise de l'existence d'un élément au sein d'une liste est souhaitée, les fonctions bisect_left et bisect_right peuvent ne pas suffire.

Pour répondre à ce besoin, les bibliothèques Python ne proposent pas de fonction dédiée uniquement à la recherche binaire avec une sortie Vrai/Faux explicite. Par conséquent, une solution personnalisée est requise.

L'extrait suivant définit la fonction binaire_search, qui effectue une recherche binaire sur une liste triée a et renvoie l'index de l'élément cible x s'il est trouvé. Si x n'est pas présent, il renvoie -1 :

from bisect import bisect_left

def binary_search(a, x, lo=0, hi=None):
    if hi is None: hi = len(a)
    pos = bisect_left(a, x, lo, hi)  # Find insertion position
    return pos if pos != hi and a[pos] == x else -1  # Check if x is there
Copier après la connexion

Cette fonction utilise bisect_left pour déterminer le point d'insertion de x. Si x est présent dans la liste, il sera situé à ce point d'insertion. Pour le confirmer, la valeur au point d'insertion est comparée à x. S'ils correspondent, x a été trouvé et son index est renvoyé. Sinon, x n'est pas présent et -1 est renvoyé pour l'indiquer.

Cette fonction personnalisée fournit une solution concise et efficace pour effectuer une recherche binaire avec une indication claire Vrai/Faux de la présence d'un élément dans une liste, répondant au besoin identifié dans la question initiale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal