Zum Inhalt springen

Informatik · Klasse 7–13 · aktualisiert

Suchalgorithmus: Linear oder binär suchen

Du führst lineare und binäre Suchen aus, zählst Vergleiche und erkennst, welche Reihenfolge die binäre Suche braucht.

0 von 8 Aufgaben gelöst

Suchalgorithmus: Linear oder binär suchen

Kurz gesagt

Die lineare Suche prüft Einträge der Reihe nach. Die binäre Suche braucht passend sortierte Daten und verkleinert den Suchbereich durch Vergleiche mit der Mitte; ihr maximaler Vergleichsaufwand wächst langsamer.

Ein Suchalgorithmus ist eine genaue Anleitung zum Finden eines gesuchten Wertes. Eine Liste enthält Einträge in einer bestimmten Reihenfolge. Du lernst zwei Suchverfahren kennen und vergleichst ihre Schritte. Alle folgenden Listen sind ausgedachte Übungsdaten.

Deine Lernziele

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

3 Abschnitte

Der Suchwert ist der Wert, den du finden möchtest. Die lineare Suche beginnt beim ersten Eintrag. Vergleiche ihn mit dem Suchwert. Bei Gleichheit meldest du die gefundene Stelle und stoppst. Sonst prüfst du den nächsten Eintrag. Ist die Liste zu Ende, meldest du „nicht gefunden“.

Für die binäre Suche verwenden wir aufsteigend sortierte Zahlen: Kleinere Werte stehen vor größeren; gleiche Werte dürfen nebeneinander vorkommen. Der Suchbereich ist der Teil der Liste, der noch infrage kommt. Anfangs ist das die ganze Liste. Prüfe den mittleren Eintrag. Gibt es zwei mittlere Einträge, nehmen wir in dieser Lektion den linken. Ist er gleich dem Suchwert, meldest du seine Stelle und stoppst. Ist der Suchwert kleiner, suchst du links von der geprüften Mitte weiter. Ist er größer, suchst du rechts davon weiter. Die geprüfte Mitte gehört nicht mehr zum neuen Suchbereich. Wiederhole diese Schritte, bis du den Wert findest oder der Suchbereich leer ist.

Ein leerer Suchbereich bedeutet „nicht gefunden“. Auch eine von Anfang an leere Liste liefert dieses Ergebnis, ohne einen Eintrag zu prüfen. Kommt der Suchwert mehrfach vor, findet die lineare Suche den ersten Treffer von links. Die binäre Suche kann eine andere passende Stelle liefern.

Definition

Lineare und binäre Suche

Linear bedeutet hier: Einträge der Reihe nach prüfen. Binär bedeutet hier: Die Mitte prüfen und bei einem fehlenden Treffer in einer der beiden verbleibenden Hälften weitersuchen.

Beispiel: Die Zahl 46 suchen

  1. 1Die sortierte Liste lautet: 5, 12, 19, 27, 34, 46.
  2. 2Linear prüfst du 5, 12, 19, 27, 34 und 46. Beim sechsten Vergleich findest du den Suchwert.
  3. 3Binär prüfst du zuerst 19, den linken der beiden mittleren Einträge. 46 ist größer; übrig bleiben 27, 34 und 46.
  4. 4Die neue Mitte ist 34. 46 ist größer; übrig bleibt 46.
  5. 5Du prüfst 46 und findest den Suchwert beim dritten Vergleich.

Teste dich

LeichtDu suchst binär in der Liste 8, 17, 25, 38, 42, 59. Welchen Wert prüfst du nach unserer Mittenregel zuerst?

Alles auf einen Blick

Suchalgorithmus

  • Lineare Suche

    Prüfe die Einträge der Reihe nach und stoppe beim ersten Treffer.

  • Binäre Suche

    Prüfe die Mitte und suche bei einem fehlenden Treffer in der passenden verbleibenden Hälfte weiter.

  • Mittenregel

    Bei zwei mittleren Einträgen nehmen wir den linken.

  • Vergleichszahl

    Bei langen Listen wächst das Maximum der binären Suche langsamer als das der linearen Suche.

  • Voraussetzung

    Für die binäre Suche müssen die Einträge nach der gesuchten Angabe passend sortiert sein.

  • Zusätzlicher Aufwand

    Vorheriges Sortieren ist in den Suchvergleichen nicht enthalten.

Musteraufgabe · Schritt für Schritt

Die Buchnummer 68 mit beiden Verfahren finden

  1. 1Die ausgedachte, aufsteigend sortierte Liste lautet: 6, 14, 22, 31, 43, 57, 68, 79. Gesucht ist 68.
  2. 2Linear prüfst du zuerst 6, dann 14, 22, 31, 43 und 57. Das sind bisher sechs Vergleiche ohne Treffer.
  3. 3Als Nächstes prüfst du 68 und stoppst. Die lineare Suche braucht hier sieben Vergleiche.
  4. 4Binär beginnst du wieder mit der ganzen Liste. Die beiden mittleren Einträge sind 31 und 43; du prüfst den linken, also 31.
  5. 568 ist größer als 31. Im verbleibenden Bereich 43, 57, 68, 79 prüfst du als linke Mitte 57.
  6. 668 ist größer als 57. Im verbleibenden Bereich 68, 79 prüfst du als linke Mitte 68 und findest den Suchwert.
  7. 7Die binäre Suche braucht hier drei Vergleiche. Vorheriges Sortieren war nicht nötig, weil die Liste bereits passend sortiert war.

Fehler finden

Prüfe die Suche nach 14 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.

In einer aufsteigend sortierten Zahlenliste ist der Suchwert kleiner als die geprüfte Mitte. Die binäre Suche setzt sich in der Hälfte ohne die geprüfte Mitte fort. Die lineare Suche nach 25 prüft nacheinander 30, 11 und 25 und stoppt beim Treffer. Sie braucht Vergleiche. Eine Zahlenliste ist ungeordnet. Ohne Umordnen lässt sie sich nach den Regeln dieser Lektion durchsuchen.

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Suchalgorithmus

LeichtDu suchst 11 binär in der sortierten Liste 3, 11, 18, 26, 39. Du hast die Mitte 18 geprüft. Wie geht es weiter?
MittelBei 32 Einträgen braucht die binäre Suche höchstens sechs Vergleiche. Wie viele braucht sie höchstens bei 64 passend sortierten Einträgen?
SchwerDu suchst eine Nummer in einer ungeordneten Liste. Ein Schüler sortiert die Liste zuerst und zählt danach die wenigen Vergleiche der binären Suche. Welche Aussage stimmt?

Weiterlesen in Informatik