Junior
Welcher Algorithmus hat eine logarithmische Komplexität O(log n)?
sobes.tech KI
Antwort von AI
Der binäre Suchalgorithmus (oder dichotome Suche) hat eine logarithmische Laufzeitkomplexität O(log n).
Funktionsprinzip der binären Suche:
- Erfordert ein sortiertes Array (oder eine Liste).
- Vergleicht in jedem Schritt das gesuchte Element mit dem Element in der Mitte des aktuellen Suchbereichs.
- Wenn die Elemente übereinstimmen, ist die Suche beendet.
- Wenn das gesuchte Element kleiner als das mittlere ist, wird die Suche im linken Bereich fortgesetzt.
- Wenn das gesuchte Element größer als das mittlere ist, wird die Suche im rechten Bereich fortgesetzt.
- Der Suchbereich halbiert sich bei jedem Schritt.
Beispiel für eine Implementierung in Python:
# Funktion für binäre Suche
def binary_search(arr, target):
low = 0
high = len(arr) - 1
while low <= high:
mid = (low + high) // 2
mid_val = arr[mid]
if mid_val == target:
return mid # Element gefunden, gibt den Index zurück
elif mid_val < target:
low = mid + 1 # Ignoriert die linke Hälfte
else:
high = mid - 1 # Ignoriert die rechte Hälfte
return -1 # Element nicht gefunden
# Beispiel für die Verwendung
# sortierte_liste = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]
# zielwert = 23
# ergebnis = binary_search(sortierte_liste, zielwert)
# if ergebnis != -1:
# print(f"Element gefunden bei Index: {ergebnis}")
# else:
# print("Element nicht gefunden")
Die logarithmische Komplexität ergibt sich daraus, dass die Anzahl der Operationen proportional zum Logarithmus der Eingabedaten (n) ist, da bei jedem Schritt der Suchraum halbiert wird.