BubbleSort
Quelle des Bildes
Warum heißt das BubbleSort so?
Dieser Sortieralgorithmus heißt so, weil die größten Zahlen, wie in einer Blase nach oben aufsteigen. Aus diesem Grund wird dieser Algorithmus auch "Sortieren durch Aufsteigen" oder "Austauschsortieren" genannt.
Prinzip
Bubblesort an einer Zahlenliste
In der Bubble-Phase wird die Eingabe-Liste von links nach rechts durchlaufen. Dabei wird in jedem Schritt das aktuelle Element mit dem rechten Nachbarn verglichen. Falls die beiden Elemente das Sortierkriterium verletzen, werden sie getauscht. Am Ende der Phase steht bei auf- bzw. absteigender Sortierung das größte bzw. kleinste Element der Eingabe am Ende der Liste.
Die Bubble-Phase wird solange wiederholt, bis die Eingabeliste vollständig sortiert ist. Dabei muss das letzte Element des vorherigen Durchlaufs nicht mehr betrachtet werden, da die restliche zu sortierende Eingabe keine größeren bzw. kleineren Elemente mehr enthält.
Je nachdem, ob auf- oder absteigend sortiert wird, steigen die größeren oder kleineren Elemente wie Blasen im Wasser (daher der Name) immer weiter nach oben, das heißt, an das Ende der Liste. Auch werden immer zwei Zahlen miteinander in „Bubbles“ vertauscht.
Java Code
public static int[] bubbleSort(int[] list) {
int ready = 0; // anzahl der fertig sortierten Elemente
boolean sorted = false;
while (!sorted) {
sorted = true;
// new bubble / Bubble-Phase
for (int i = 0; i < list.length - 1 - ready; i++) {
if (list[i] > list[i + 1]) {
// swap list[i] and list [i + 1]
int zahl1 = list[i];
int zahl2 = list[i + 1];
list[i] = zahl2;
list[i + 1] = zahl1;
sorted = false;
}
}
ready++;
}
return list;
}
Beispiel an der Sortierung von Balken
Verwendung
In der Praxis wird Bubblesort kaum eingesetzt, da andere Verfahren ein besseres Laufzeitverhalten haben. Der Algorithmus spielt allerdings in der Lehre eine Rolle, da er als einfach zu erklären bzw. zu demonstrieren gilt.
Da muss ich direkt an mein Software Engineering Studium zurück denken ... Da lernt man ein halbes Semester irgendwelche sortier Algorithmen und in der Praxis wird man in der Regel nie in die Situation kommen selbst einen sortier Algorithmus zu schreiben. Naja aber zum lernen ist das denk ich mal echt sinnvoll und leicht zu verstehen.
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://de.wikipedia.org/wiki/Bubble_Sort
Downvoting a post can decrease pending rewards and make it less visible. Common reasons:
Submit