Aus dem Buch "Natoku! Algorithmus" Für Memorandum
def binary_search(list, item):
low = 0 #Verfolgen Sie den Suchteil der Liste mit niedrig und hoch
high = len(list) - 1
while low <= high:
mid = (low + high) // 2
guess = list[mid] #Untersuche das Element in der Mitte
if guess == item: #Gegenstand erkennen
return mid #Wenn die Antwort richtig ist, Mitte(index)Gib es zurück
if guess > item: #Die erratene Zahl war zu groß
high = mid -1
else: #War zu klein
low = mid + 1
return None #Wenn Sie es nicht finden können, keine
my_list = [1,3,5,7,9]
print binary_search(my_list, 3) #Die Antwort ist 3
2222222 # log2(100) = 7 log2 (100) gibt an, wie oft 2 multipliziert werden soll, um 100 zu erhalten Die Antwort ist 7
Es stellte sich heraus, dass die Anzahl der Suchvorgänge durch logarithmische Konvertierung ermittelt werden kann.
Recommended Posts