Zum Inhalt springen

Informatik · Klasse 7–13 · aktualisiert

Bubblesort: Algorithmus, Beispiel und Laufzeit

Du sortierst Zahlen mit Bubblesort, begründest, warum rechts immer ein Element fertig ist, und ordnest die Laufzeit ein.

0 von 11 Aufgaben gelöst

Bubblesort: Algorithmus, Beispiel und Laufzeit

Kurz gesagt

Bubblesort vergleicht von links nach rechts zwei Nachbarn und tauscht sie, wenn die linke Zahl größer ist. Nach jeder Runde steht rechts das größte Element des noch unsortierten Rests. Im schlimmsten und im durchschnittlichen Fall wächst die Laufzeit quadratisch.

Stell dir vor, du sollst Karten mit Zahlen sortieren, darfst aber immer nur zwei nebeneinander vergleichen. Genau so arbeitet Bubblesort. Das Verfahren gilt als einfach zu erklären, deshalb lernt man es früh. An ihm siehst du auch gut, wie man die Laufzeit eines Algorithmus einschätzt.

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

Bubblesort ist ein Verfahren, das eine Liste sortiert, indem es Elemente miteinander vergleicht. Du gehst die Liste in einem Durchlauf von links nach rechts durch. In jedem Schritt vergleichst du die aktuelle Zahl mit ihrem rechten Nachbarn. Beim aufsteigenden Sortieren tauschst du die beiden, wenn die linke Zahl größer ist als die rechte. Sonst bleibt alles, wie es ist.

Danach beginnst du wieder links und machst den nächsten Durchlauf. Das wiederholst du, bis die Liste sortiert ist. Wenn du die Vergleiche dokumentieren sollst, schreibst du für jeden Schritt das verglichene Paar auf, ob du getauscht hast und wie die Liste danach aussieht. Bubblesort heißt auch „Sortieren durch Aufsteigen“ oder „Austauschsortieren“. In der Praxis wird es kaum eingesetzt, in der Lehre spielt es aber eine Rolle, weil es als einfach zu erklären und zu demonstrieren gilt.

Definition

Durchlauf

Ein Durchlauf (auch Runde) ist ein Gang von links nach rechts durch die Liste. Dabei wird jede Zahl mit ihrem rechten Nachbarn verglichen und bei Bedarf getauscht.

Beispiel: Die Zahlen 55, 07, 78, 12, 42 aufsteigend sortieren

  1. 1Durchlauf 1: (55, 07) tauschen → 07 55 78 12 42
  2. 2(55, 78) kein Tausch
  3. 3(78, 12) tauschen → 07 55 12 78 42
  4. 4(78, 42) tauschen → 07 55 12 42 78
  5. 5Durchlauf 2: (07, 55) kein Tausch; (55, 12) tauschen → 07 12 55 42 78; (55, 42) tauschen → 07 12 42 55 78
  6. 6Durchlauf 3: (07, 12) und (12, 42) kein Tausch, die Folge bleibt 07 12 42 55 78
  7. 7Durchlauf 4: (07, 12) kein Tausch. Fertig sortiert.

Teste dich

LeichtWelche Zahlen vergleicht Bubblesort in einem Schritt?
MittelBeim aufsteigenden Sortieren steht links 78 und rechts 12. Was tut Bubblesort?

Alles auf einen Blick

Bubblesort

  • Schritt

    Du vergleichst das aktuelle Element mit seinem rechten Nachbarn und tauschst, wenn die linke Zahl größer ist.

  • Runde

    Nach jedem Durchlauf steht rechts das größte Element des jeweils noch unsortierten Rests.

  • Einfache Variante

    Sie macht n − 1 Durchläufe, auch bei einer schon sortierten Liste.

  • Mit Abbruch

    Sie hört auf, wenn ein Durchlauf ohne Tausch blieb.

  • Laufzeit

    Im schlimmsten und im durchschnittlichen Fall wächst sie quadratisch, bei doppelter Eingabe etwa vierfach.

  • Einsatz

    In der Praxis kaum eingesetzt, in der Lehre wegen der einfachen Erklärung wichtig.

Musteraufgabe · Schritt für Schritt

Vier Zahlen sortieren und die Vergleiche zählen

  1. 1Erfundenes Beispiel: Die Zahlen 4, 2, 5, 1 sollen aufsteigend sortiert werden (einfache Variante).
  2. 2Durchlauf 1: (4, 2) tauschen → 2 4 5 1; (4, 5) kein Tausch; (5, 1) tauschen → 2 4 1 5
  3. 3Die 5 steht jetzt ganz rechts und wird nicht mehr verglichen.
  4. 4Durchlauf 2: (2, 4) kein Tausch; (4, 1) tauschen → 2 1 4 5
  5. 5Durchlauf 3: (2, 1) tauschen → 1 2 4 5
  6. 6Vergleiche: 3 + 2 + 1 = 6, das passt zu n·(n − 1)/2 mit n = 4
  7. 7Probe: 1 2 4 5 ist aufsteigend und es sind noch alle vier Zahlen da.

Fehler finden

Prüfe die Schritte beim Sortieren von 8, 3, 6, 2 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.

Du gehst die Liste von links nach rechts durch und vergleichst jedes Element mit seinem Nachbarn. Nach dem ersten Durchlauf steht bei aufsteigendem Sortieren die Zahl am Ende. Bei quadratischem Wachstum wird die Ausführungsdauer bei doppelt so vielen Zahlen etwa .

Karteikasten

Erst selbst überlegen, dann umdrehen.

Übung mit Feedback

Abschluss-Check: Bubblesort

LeichtDie Liste 3, 8, 2 wird aufsteigend mit Bubblesort bearbeitet. Wie sieht sie nach dem ersten Durchlauf aus?
MittelEine Liste mit sechs Zahlen wird aufsteigend sortiert. Welche Elemente stehen nach drei Durchläufen sicher an ihrem endgültigen Platz?
SchwerDie einfache Variante bearbeitet eine schon sortierte Liste mit sechs Zahlen. Wie viele Vergleiche macht sie?

Weiterlesen in Informatik