Heim >Backend-Entwicklung >Python-Tutorial >Wie finde ich die ganze Zahl, die einem gegebenen Wert in einer Liste am nächsten kommt?
Finden der nächsten Ganzzahl aus einem gegebenen Wert in einer Liste
Um die Zahl in einer gegebenen Liste zu bestimmen, die einem Zielwert am nächsten kommt , gibt es mehrere Ansätze, die in Betracht gezogen werden können:
Verwendung der integrierten Funktion min() Funktion:
Wenn die Liste unsortiert ist, bietet die Funktion min() eine praktische Möglichkeit, das nächstgelegene Element zu finden. Es ermöglicht uns, eine Schlüsselfunktion anzugeben, um den Abstand vom Zielwert zu bewerten:
min(myList, key=lambda x:abs(x-myNumber))
Dieser Ansatz hat eine zeitliche Komplexität von O(n), wobei n die Länge der Liste ist.
Verwendung der Halbierungsmethode (für sortierte Listen):
Wenn die Liste bereits sortiert ist oder effizient sortiert werden kann, ist die Halbierung Methode bietet eine schnellere Lösung mit einer Zeitkomplexität von O(log n). Bei dieser Technik wird die Liste wiederholt in zwei Hälften geteilt und der Zielwert mit dem mittleren Element verglichen, bis das nächstgelegene Element gefunden wird.
Absolute Unterschiede vergleichen:
Ein anderer Ansatz ist um die Liste zu durchlaufen und die absolute Differenz zwischen jedem Element und dem Zielwert zu berechnen. Das Element mit der kleinsten absoluten Differenz wird dann als das nächste betrachtet:
closest_num = None min_diff = float('inf') for num in myList: diff = abs(num - myNumber) if diff < min_diff: closest_num = num min_diff = diff
Dieser Ansatz hat ebenfalls eine zeitliche Komplexität von O(n).
Die Wahl des Ansatzes hängt von Faktoren wie z B. die Listengröße und ob diese bereits sortiert ist. Für kleine Listen oder unsortierte Listen kann die Funktion min() eine einfache Lösung sein. Bei großen oder sortierten Listen bietet die Halbierungsmethode eine bessere Effizienz.
Das obige ist der detaillierte Inhalt vonWie finde ich die ganze Zahl, die einem gegebenen Wert in einer Liste am nächsten kommt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!