Heim > Backend-Entwicklung > Python-Tutorial > Findet diese binäre Python-Suchfunktion das Element?

Findet diese binäre Python-Suchfunktion das Element?

Mary-Kate Olsen
Freigeben: 2024-11-28 16:44:11
Original
267 Leute haben es durchsucht

Does This Python Binary Search Function Find the Element?

Binäre Suche (Bisektion) in Python

Die Feststellung, ob ein Element in einer sortierten Liste oder einem Tupel vorhanden ist, ist eine häufige Aufgabe in der Programmierung. Während Python das Modul „bisect“ für die binäre Suche bereitstellt, geben seine Funktionen „bisect_left“ und „bisect_right“ eine Position zurück, auch wenn das Element nicht gefunden wird. Um diesem Bedarf gerecht zu werden, wird eine Python-Implementierung der binären Suche eingeführt, die explizit einen booleschen Wert zurückgibt.

Vorgeschlagene Lösung

Die Funktion „binary_search“ verwendet eine sortierte Liste „a“. , ein zu suchendes Element „x“ und optionale Start- und Endpositionen „lo“ und „hi“ für den Suchbereich. Es verwendet die Funktion bisect_left aus dem Modul bisect, um den Einfügepunkt „pos“ für „x“ in der Liste „a“ zu lokalisieren.

Wenn „pos“ kleiner als „hi“ ist und das Element bei „pos ' gleich 'x' ist, dann wird 'x' gefunden und 'pos' wird als Index seiner Position in der Liste zurückgegeben. Wenn „pos“ jedoch das Ende der Liste erreicht (d. h. „pos“ entspricht „hi“), wird „x“ nicht gefunden und die Funktion gibt -1 zurück.

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  # don't walk off the end
Nach dem Login kopieren

Beispielverwendung

Wenn beispielsweise eine sortierte Liste „a“ und ein zu suchendes Element „x“ vorhanden sind, kann die Funktion „binary_search“ verwendet werden als folgt:

result = binary_search(a, x)

if result == -1:
    print("Element not found")
else:
    print("Element found at index", result)
Nach dem Login kopieren

Diese prägnante Python-Funktion bietet eine praktische Möglichkeit, eine binäre Suche zur Überprüfung der Existenz von Elementen in sortierten Listen durchzuführen und dabei die Einfachheit und Effizienz der binären Suche beizubehalten.

Das obige ist der detaillierte Inhalt vonFindet diese binäre Python-Suchfunktion das Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage