Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine binäre Wahr/Falsch-Suche in Python effizient durchführen?
In Python wird die binäre Suche mühelos über das Bisect-Modul durchgeführt. Wenn jedoch eine genaue Angabe der Existenz eines Elements in einer Liste gewünscht wird, reichen die Funktionen bisect_left und bisect_right möglicherweise nicht aus.
Um diesem Bedarf gerecht zu werden, bieten Python-Bibliotheken keine spezielle Funktion an, die ausschließlich auf die binäre Suche zugeschnitten ist eine explizite Wahr/Falsch-Ausgabe. Daher ist eine benutzerdefinierte Lösung erforderlich.
Das folgende Snippet definiert die Funktion „binary_search“, die eine binäre Suche in einer sortierten Liste a durchführt und den Index des Zielelements x zurückgibt, falls es gefunden wird. Wenn x nicht vorhanden ist, wird -1 zurückgegeben:
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 # Check if x is there
Diese Funktion verwendet bisect_left, um den Einfügepunkt für x zu bestimmen. Wenn x in der Liste vorhanden ist, wird es an diesem Einfügepunkt platziert. Um dies zu bestätigen, wird der Wert am Einfügepunkt mit x verglichen. Wenn sie übereinstimmen, wurde x gefunden und sein Index wird zurückgegeben. Andernfalls ist x nicht vorhanden und -1 wird zurückgegeben, um dies anzuzeigen.
Diese benutzerdefinierte Funktion bietet eine präzise und effiziente Lösung für die Durchführung einer binären Suche mit einer klaren Wahr/Falsch-Angabe für das Vorhandensein eines Elements in einer Liste. Erfüllung des in der ursprünglichen Frage genannten Bedarfs.
Das obige ist der detaillierte Inhalt vonWie kann ich eine binäre Wahr/Falsch-Suche in Python effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!