Zum Inhalt springen

Informatik · Klasse 7–13 · aktualisiert

Binäre Suche: Ablauf, Beispiel und Laufzeit

Du lernst, warum die binäre Suche eine sortierte Folge braucht, wie links, rechts und mitte wandern und wie sie fehlende Werte erkennt.

0 von 9 Aufgaben gelöst

Binäre Suche: Ablauf, Beispiel und Laufzeit

Kurz gesagt

Die binäre Suche ist ein Algorithmus, der in einem sortierten Array ein Element sehr effizient findet oder zuverlässig ausschließt, dass es vorhanden ist. Sie vergleicht mit der Mitte und schließt jedes Mal eine Hälfte aus. Ihr Aufwand O(log n) wächst nur langsam, wenn die Liste größer wird.

Wenn du ein Wort im Wörterbuch suchst, blätterst du nicht Seite für Seite. Du schlägst irgendwo in der Mitte auf und weißt sofort, ob du weiter vorn oder weiter hinten suchen musst. Genau so arbeitet die binäre Suche. Hier lernst du, wann das klappt und wie viele Schritte sie höchstens braucht.

Deine Lernziele

Hake ab, was du schon kannst. Löst du alle Aufgaben eines Abschnitts, hakt Mela das Ziel für dich ab.

3 Abschnitte

Ein Array ist eine Reihe von Werten. Jeder Wert hat eine Nummer, den Index, und der Index beginnt bei 0. Ein Algorithmus ist eine Schritt-für-Schritt-Anleitung. Die binäre Suche ist ein Algorithmus, der in einem Array sehr effizient ein gesuchtes Element findet oder zuverlässig ausschließt, dass es vorhanden ist.

Voraussetzung ist, dass die Elemente sortiert sind. Hier sind die Werte von links nach rechts aufsteigend sortiert. Gleiche Werte dürfen mehrfach vorkommen. Kommt der Suchwert mehrmals vor, ist nicht festgelegt, welche Position ausgegeben wird.

Der Grund: Du vergleichst den Suchwert mit dem Wert in der Mitte. Weil die Folge sortiert ist, kannst du danach eine ganze Hälfte ausschließen. Ist der Suchwert kleiner als der Vergleichswert, kann er nur in der linken Hälfte stehen. Ist er größer, kann er nur in der rechten Hälfte stehen. Ohne Sortierung gilt dieser Schluss nicht. Die lineare Suche (sie geht der Reihe nach vor) hat dafür den Vorteil, auch in unsortierten Arrays zu funktionieren.

Noch zwei Bedingungen: Die Daten müssen bereits sortiert sein und so vorliegen, dass man direkt auf das n-te Element zugreifen kann. Und die Suche muss zur Sortierung passen.

Definition

Binäre Suche

Die binäre Suche ist ein Algorithmus, der in einem sortierten Array ein gesuchtes Element findet oder dessen Vorhandensein zuverlässig ausschließt.

Beispiel: Telefonbuch

  1. 1Ein Telefonbuch ist nach Namen sortiert.
  2. 2Nach einem bestimmten Namen kannst du mit binärer Suche suchen.
  3. 3Nach einer bestimmten Telefonnummer geht das nicht, denn danach ist das Telefonbuch nicht sortiert.

Merke: Sortiert heißt: Nach dem Vergleich mit der Mitte fällt eine ganze Hälfte weg. Ordnung und Suche müssen sich auf dasselbe beziehen.

Teste dich

LeichtEine aufsteigend sortierte Folge hat in der Mitte den Wert 50. Du suchst den Wert 20. Wo kann 20 nur stehen?

Alles auf einen Blick

Binäre Suche

  • Voraussetzung

    Die Elemente sind sortiert, und man kann direkt auf das n-te Element zugreifen.

  • Mitte

    mitte = links + (rechts - links) // 2 halbiert den Suchbereich.

  • Rand verschieben

    Wert in der Mitte zu groß heißt rechts = mitte - 1, zu klein heißt links = mitte + 1.

  • Fehlender Wert

    Ist der Suchbereich leer, ist der Wert nicht gefunden. Bei „Lücke x“ ist x der Einfügeindex.

  • Aufwand

    Die Zeitkomplexität ist O(log n), denn der Suchbereich wird in jedem Schritt halbiert.

Musteraufgabe · Schritt für Schritt

Die Zahl 15 in einer Folge suchen

  1. 1Aufgabe (erfundene Daten): Suche 15 in [3, 5, 7, 9, 11, 13, 15, 17, 19] mit den Indizes 0 bis 8
  2. 2Start: links = 0, rechts = len(folge) - 1 = 8
  3. 3mitte = 0 + (8 - 0) // 2 = 4, Wert 11. Da 11 kleiner als 15 ist, gilt links = 4 + 1 = 5
  4. 4mitte = 5 + (8 - 5) // 2 = 5 + 1 = 6, Wert 15: gefunden
  5. 5Ergebnis: Position 6 nach 2 Vergleichen

Fehler finden

Prüfe die Schritte dieser Suche In einer Zeile steckt ein Fehler. Tippe sie an.

Lückentext

Wähl in jeder Lücke das passende Wort und prüf dann deine Antworten.

Die binäre Suche braucht Werte, die sind. Ist der Suchwert größer als der Wert in der Mitte, wird auf mitte + 1 gesetzt. Gilt links = 3 und rechts = 3, enthält der Suchbereich .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Binäre Suche

LeichtWelche Voraussetzung braucht die binäre Suche?
MittelDie Folge [5, 10, 15, 20, 25, 30, 35, 40, 45] hat die Indizes 0 bis 8. Du suchst 40. An welcher Position wird 40 gefunden?
SchwerEine sortierte Liste hat 1000 Einträge. Welche Aussage über die nötigen Vergleiche im ungünstigsten Fall stimmt?

Weiterlesen in Informatik