La recherche binaire est un algorithme efficace pour rechercher un tableau trié en divisant à plusieurs reprises l'intervalle de recherche en deux. Vous trouverez ci-dessous une implémentation étape par étape de la recherche binaire dans Python:
<code class="python">def binary_search(arr, target): """ Perform binary search on a sorted array to find the target value. Args: arr (list): A sorted list of elements to search through. target: The value to search for in the list. Returns: int: The index of the target if found, otherwise -1. """ left, right = 0, len(arr) - 1 while left </code>
Cette fonction binary_search
prend un tableau trié et une valeur cible, puis renvoie l'index de la cible s'il est trouvé, ou -1 si ce n'est pas le cas.
Pour assurer l'efficacité d'une recherche binaire dans Python, vous devez suivre ces étapes clés:
left
sur 0 et right
sur len(arr) - 1
. Ces frontières définissent initialement l'ensemble de l'espace de recherche.(left right) // 2
. Assurez-vous que ce calcul ne déborde pas et est calculé correctement dans chaque itération.Mise à jour des limites correctes :
arr[mid] , mise à jour <code>left
au mid 1
pour rechercher la moitié droite.
arr[mid] > target
, mettez à right
vers mid - 1
pour rechercher la moitié gauche.arr[mid] == target
, renvoyez l'indice mid
comme la cible est trouvée.left . Cela garantit que l'ensemble du tableau est recherché si nécessaire.
En adhérant à ces étapes, vous vous assurez que la recherche binaire reste efficace avec une complexité temporelle de O (log n).
Pour optimiser la recherche binaire sur de grands ensembles de données dans Python, considérez les techniques suivantes:
(left right) // 2
, ce qui peut entraîner un débordement dans de très grands tableaux, utilisez left (right - left) // 2
. Cela empêche les problèmes de débordement entier potentiels.Voici une version légèrement optimisée de la recherche binaire de grands ensembles de données:
<code class="python">def optimized_binary_search(arr, target): left, right = 0, len(arr) - 1 while left </code>
Lors de la mise en œuvre de la recherche binaire dans Python, soyez conscient de ces erreurs courantes:
(left right) / 2
peut entraîner des problèmes de division flottante dans Python 2 ou (left right) // 2
peut provoquer un débordement entier dans de très grands ensembles de données. Au lieu de cela, utilisez left (right - left) // 2
.Mises à jour des limites incorrectes :
left
et right
, telle que left = mid
ou right = mid
au lieu de left = mid 1
et right = mid - 1
.left = 0
et right = len(arr)
au lieu de right = len(arr) - 1
peut entraîner des erreurs hors limites.None
dans certains cas et -1
dans d'autres.left au lieu de <code>left peut faire manquer l'algorithme de la cible si c'est le dernier élément restant.
En évitant ces erreurs courantes, vous pouvez vous assurer que votre implémentation de recherche binaire est à la fois correcte et efficace.
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!