Bubble Sort – Drei Varianten im Vergleich

Bubble Sort – Drei Varianten im Vergleich

Sortieralgorithmen sind mehr als technische Werkzeuge – sie sind Denkbewegungen mit Struktur. Hier werden drei Varianten des Bubble Sort vorgestellt, jeweils mit Pseudocode und didaktischer Reflexion.

🔁 1. Standardversion

function bubbleSortStandard(feld) { for (i = 0; i < feld.length; i++) { for (j = 0; j < feld.length - 1; j++) { if (feld[j] > feld[j + 1]) { temp = feld[j]; feld[j] = feld[j + 1]; feld[j + 1] = temp; Output("Tausch bei Position " + j); } } } }

🧠 2. Optimierte Version mit Merker

function bubbleSortMitMerkung(feld) { do { merker = false; for (i = 0; i < feld.length - 1; i++) { if (feld[i] > feld[i + 1]) { temp = feld[i]; feld[i] = feld[i + 1]; feld[i + 1] = temp; merker = true; Output("Tausch bei Position " + i); // beim Abtauchen } } Output("Durchlauf beendet – Merker: " + merker); // beim Auftauchen } while (merker == true); Output("Feld ist durchsortiert."); }

⚡ 3. Kombinierte Version mit Merker und Bereichsverkürzung

function bubbleSortKombiniert(feld) { n = feld.length; do { merker = false; for (i = 0; i < n - 1; i++) { if (feld[i] > feld[i + 1]) { temp = feld[i]; feld[i] = feld[i + 1]; feld[i + 1] = temp; merker = true; Output("Tausch bei Position " + i); // beim Abtauchen } } Output("Durchlauf beendet – Merker: " + merker + ", Grenze: " + n); // beim Auftauchen n = n - 1; } while (merker == true); Output("Feld ist durchsortiert."); }

📊 Vergleich der Varianten

Variante Vorteile Nachteile
Standard Einfach zu verstehen; konstante Struktur Viele unnötige Durchläufe; ineffizient bei sortierten Feldern
Mit Merker Frühzeitiger Abbruch möglich; leicht visualisierbar Mehr Vergleiche bei unsortierten Feldern
Kombiniert Effizient bei allen Feldzuständen; spart Vergleiche und Durchläufe Didaktisch komplexer; schwerer zu visualisieren
🦉 „Ein guter Algorithmus weiß, wann er aufhören darf – und wo er noch wirken muss.“