Heim > Backend-Entwicklung > Python-Tutorial > So implementieren Sie die binäre Suche mit Python

So implementieren Sie die binäre Suche mit Python

WBOY
Freigeben: 2023-05-11 10:40:05
nach vorne
3252 Leute haben es durchsucht

Erstellen Sie zunächst eine Funktion namens „binary_search“: Übergeben Sie zwei Parameter, die Liste der Elemente und den Wert, den Sie suchen möchten.

def binary_search(_list, value):
Nach dem Login kopieren

Als nächstes definieren Sie die erforderlichen Variablen innerhalb der Funktion. Der Schlüssel zur Dichotomie besteht darin, von der Mitte der Liste nach beiden Seiten zu suchen (der Ausdruck ist möglicherweise nicht streng, aber das ist es, was er bedeutet). Intuition, definiere links, rechts, Mitte. Drei Variablen repräsentieren: den Startindex, den Endindex und den mittleren Index der Liste.

    left = 0   # 列表的起始索引
    right = len(_list)   # 列表的结束索引
    mid = int((left + right)/2)  # 采用此方法,通过四舍五入刚好可以定位到列表的中间位置
Nach dem Login kopieren

Der nächste Schritt besteht darin, den Schlüsselteil der binären Suche zu implementieren. Definieren Sie zunächst eine While-Schleife, damit die Suche reibungslos ablaufen kann. Es gibt drei Situationen:

1. _list[mid] == value: Der Zwischenwert ist zufällig der Wert, den wir finden müssen, also geben Sie einfach den entsprechenden Index direkt zurück.

2. _list[mid] > Wert: Der zu findende Wert befindet sich auf der linken Seite von mid, um den Suchbereich einzugrenzen.

3._list[mid] < value: Der zu findende Wert befindet sich auf der rechten Seite von mid, aktualisieren Sie den Wert von left auf mid und suchen Sie auf der rechten Seite von mid.

Aktualisieren Sie abschließend den Wert von mid, um die nächste Suchrunde zu starten, und verwenden Sie die while-else-Anweisung, um zu beurteilen, ob er nicht gefunden wird, und geben Sie einen Rückgabewert an.

    while left < right:
        if _list[mid] == value:
            return mid
        elif _list[mid] > value:
            right = mid
        else:
            left = mid
        mid = int((right + left)/2)
    else:
        return -1
Nach dem Login kopieren

Abschließend sind der vollständige Code und die Testlaufleistung wie folgt:

""" a demo realize binary search"""
 
 
def binary_search(_list, value):
    left = 0   # 列表的起始索引
    right = len(_list)   # 列表的结束索引
    mid = int((left + right)/2)  # 采用此方法,通过四舍五入刚好可以定位到列表的中间位置
    while left < right:
        if _list[mid] == value:
            return mid
        elif _list[mid] > value:
            right = mid
        else:
            left = mid
        mid = int((right + left)/2)
    else:
        return -1
 
 
index = "the index of value in the list: {}"
print(index.format(binary_search([1, 2, 3, 4, 5, 6, 7, 8, 9], 1)))
Nach dem Login kopieren

Laufergebnisse:

So implementieren Sie die binäre Suche mit Python

Wenn kein Wert gefunden werden kann:

So implementieren Sie die binäre Suche mit Python

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die binäre Suche mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage