Recherche de bisection (python2.7) mémo

Extrait du livre "Natoku! Algorithm" Pour mémoire


def binary_search(list, item):
    low = 0                               #Suivez la partie de recherche de la liste à l'aide de bas et de haut
    high = len(list) - 1
    
    while low <= high:
        mid = (low + high) // 2
        guess = list[mid]          #Examinez l'élément au milieu
        if guess == item:        #Détecter l'élément
            return mid     #Si la réponse est correcte, mi(index)rends le
        if guess > item:    #Le nombre deviné était trop grand
            high = mid -1
        else:                   #Était trop petit
            low = mid + 1
    return None    #Si vous ne le trouvez pas, aucun

my_list = [1,3,5,7,9]

print binary_search(my_list, 3) #La réponse est 3

2222222 # log2(100) = 7 log2 (100) est le nombre de fois que 2 doit être multiplié pour obtenir 100 La réponse est 7

Il s'est avéré que le nombre de recherches peut être obtenu en effectuant une conversion logarithmique.

Recommended Posts

Recherche de bisection (python2.7) mémo
Dichotomie avec Python
[Python] Recherche de bisection ABC155D
Dichotomie avec python
Dichotomie avec Python 3
Recherche binaire en Python
Mémo Python
mémo python
Mémo Python
Recherche binaire en Python / C ++
Algorithme en Python (dichotomie)
mémo python
Mémo Python
Mémo Python
Ecrire une dichotomie en Python
[Python] Mémo sur le dictionnaire
mémo débutant python (9.2-10)
mémo débutant python (9.1)
visualiser la recherche binaire
★ Mémo ★ Python Iroha
ABC146C (dichotomie)
[Python] Mémo EDA
Mémo opérateur Python 3
[Mon mémo] python
Mémo de métaclasse Python3
[Python] Mémo de fond de carte
Mémo débutant Python (2)
[Python] Mémo Numpy
Algorithme en Python (ABC 146 C Dichotomy
Classe Python (mémo d'apprentissage Python ⑦)
Recherche séquentielle avec Python
installation de python openCV (mémo)
Module Python (mémo d'apprentissage Python ④)
Mémo de visualisation par Python
Exercice Python Recherche prioritaire sur 1 largeur
[Python] Recherche (itertools) ABC167C
[Python] Acing binaire 2020D
Mémo du package de test Python
[Python] Mémo sur les fonctions
[Python] Recherche (NumPy) ABC165C
mémo d'expression régulière python
[Mon mémo] python -v / python -V
Mémo de type Liste / Dictionnaire Python3
[Mémo] Tri de liste Python3
Astuces Python (mon mémo)
[Python] Mémo sur les erreurs
Mémo de script DynamoDB (Python)
recherche complète de bits python
Recherche linéaire en Python
Mémo de base Python - Partie 2
livre de recettes python Memo
Notes de commande de base Python
Mémo du didacticiel Python OpenCV
Rechercher sur Twitter avec Python
Mémo de grammaire de base Python
Mémo de l'API TensorFlow (Python)
liens de mémo utiles python
Mémo d'opération de décorateur Python