Stewdent.eu
▾

Binäre Suche

Die binäre Suche teilt eine sortierte Liste bei jedem Schritt in der Mitte und schließt die Hälfte aus, in der das gesuchte Element nicht sein kann. Sie ist viel schneller als die lineare Suche.

Zuletzt aktualisiert: 23. Februar 2026

★★☆☆☆ Stufe 2computingalgorithmensuchebinäre-suche4 Min Lesezeit

Fehler melden

Stell dir vor, du schlägst ein Wort in einem dicken Wörterbuch nach. Schlägst du auf der ersten Seite auf und arbeitest dich Seite für Seite vor? Natürlich nicht! Du öffnest das Buch in der Mitte, siehst ob das Wort vor oder nach dieser Stelle kommt, und teilst dann die verbleibende Hälfte wieder in der Mitte auf. Das ist genau die Idee hinter der binären Suche.

Voraussetzung: Sortierte Liste

Die binäre Suche funktioniert nur auf sortierten Listen. Das ist der entscheidende Unterschied zur linearen Suche.

Grundprinzip

  1. Betrachte das mittlere Element der Liste.
  2. Ist es der gesuchte Wert? Fertig!
  3. Ist der gesuchte Wert kleiner? Suche nur noch in der linken Hälfte.
  4. Ist der gesuchte Wert größer? Suche nur noch in der rechten Hälfte.
  5. Wiederhole, bis der Wert gefunden wird oder der Suchbereich leer ist.

Visualisierung

Suche nach 23 in [2, 5, 8, 12, 16, 23, 38, 42]:

SchrittLinksRechtsMitteWertAktion
10731223 > 12 → rechte Hälfte
247523Gefunden!

Nur 2 Vergleiche statt potenziell 8!

Python-Implementierung

def binaere_suche(liste, zielwert):
    links = 0
    rechts = len(liste) - 1
    
    while links <= rechts:
        mitte = (links + rechts) // 2   # mittlerer Index
        
        if liste[mitte] == zielwert:
            return mitte               # gefunden!
        elif liste[mitte] < zielwert:
            links = mitte + 1          # rechte Hälfte weitersuchen
        else:
            rechts = mitte - 1         # linke Hälfte weitersuchen
    
    return -1   # nicht gefunden

zahlen = [2, 5, 8, 12, 16, 23, 38, 42]
print(binaere_suche(zahlen, 23))   # 5 (Index)
print(binaere_suche(zahlen, 10))   # -1 (nicht gefunden)
Hinweis

(links + rechts) // 2 berechnet den mittleren Index mit ganzzahliger Division. Wenn die Liste eine gerade Anzahl von Elementen hat, wird der untere der beiden mittleren Indizes gewählt.

Warum ist die binäre Suche so viel schneller?

Bei jedem Schritt wird der Suchbereich halbiert:

SchritteMaximal durchsuchbare Elemente
12
24
38
7128
101.024
201.048.576

Mit nur 20 Schritten kann die binäre Suche über eine Million Elemente durchsuchen! Das nennt sich O(log n) — logarithmische Zeitkomplexität.

Tipp

Der Vergleich in Zahlen: Um 1.000.000 Elemente zu durchsuchen, braucht die lineare Suche im Durchschnitt 500.000 Vergleiche. Die binäre Suche braucht maximal 20 Vergleiche. Das ist ein riesiger Unterschied!

Lineare vs. Binäre Suche

EigenschaftLineare SucheBinäre Suche
VoraussetzungKeineListe muss sortiert sein
ZeitkomplexitätO(n)O(log n)
1.000 Elementebis 1.000 Vergleichebis 10 Vergleiche
EinfachheitSehr einfachMittel
Warnung

Die binäre Suche funktioniert nur korrekt, wenn die Liste vollständig sortiert ist. Auf einer unsortierten Liste liefert sie falsche Ergebnisse — sie schließt eventuell Bereiche aus, die das gesuchte Element enthalten.

Übungsaufgaben

Wie viele Schritte benötigt die binäre Suche maximal, um ein Element in einer sortierten Liste mit 16 Elementen zu finden?

Antwort anzeigen
4 Schritte. Nach jedem Schritt halbiert sich der Suchbereich: 16 → 8 → 4 → 2 → 1. Das entspricht log₂(16) = 4. Im schlechtesten Fall sind also 4 Vergleiche nötig.

Warum kann man die binäre Suche nicht auf eine unsortierte Liste anwenden?

Antwort anzeigen
Die binäre Suche schließt bei jedem Schritt eine Hälfte der Liste aus, basierend auf dem Vergleich mit dem mittleren Element. Das funktioniert nur, wenn alle Elemente der ausgeschlossenen Hälfte tatsächlich kleiner oder größer als der gesuchte Wert sind. Bei einer unsortierten Liste kann das gesuchte Element in der ausgeschlossenen Hälfte liegen, und die Suche würde fälschlicherweise -1 zurückgeben.