Bubble Sort ist ein einfach zu verstehender Sortieralgorithmus: Es werden soviele Runden absolviert wie die Reihung lang ist; In jeder Runde werden von vorne bis hinten je zwei Werte verglichen. Wenn der "linke" Wert größer ist als der rechte, werden die beiden Werte vertauscht. So steigen in jeder Runde größere Werte -- wie Blasen im Wasser -- von unten nach oben (daher der Name). Jedoch hat dieses Verfahren viele Nachteile, siehe der Text unterhalb des Applets.
Update 21.02.2008:
Auch der amerikanische Präsidentschaftskandidat Barack Obama
weiß offenbar über die enormen Nachteile von Bubble Sort Bescheid. Mehr dazu hier.
Legende:
rosa: größerer Vergleichspartner
rot: kleinerer Vergleichspartner
blau: bereits sortierter Teil
Die Laufzeit von Bubble Sort ist sehr hoch, verglichen mit (fast) allen anderen Sortierverfahren1. Im englischen
Referenzwerk "The Art of Computer Programming" [1] wird dieser Algorithmus ausführlich analysiert,
mit dem Fazit, dass die einzigen Vorteile von Bubble Sort sein einprägsamer Name,
und die Tatsache, dass die Laufzeitanalyse des Algorithmus zu interessanten mathematischen
Fragestellungen führt, sind [1, S. 110 und 140]. Das am einfachsten zu programmierende Verfahren ist
laut derselben Quelle
Update 10.12.2008: Vielen Dank an Tim Tempel für das Aufspüren eines Fehlers im Java-Applet auf dieser Seite. Der Fehler ist nun behoben.
[1] D. E. Knuth. The Art of Computer Programming. Volume 3: Sorting and Searching, Second Edition. Addison-Wesley, 1997. ISBN 0-201-89685-0.
[2] Owen Astrachan. Bubble Sort: An Archaeological Algorithmic Analysis. 34th ACM Technical Symposium on Computer Science Education, 2003
[3] H. Gruber, M. Holzer und O. Ruepp): "Sorting the Slow Way: An Analysis of Perversely Awful Randomized Sorting Algorithms", 4th International Conference on Fun with Algorithms, 2007, Lecture Notes in Computer Science 4475, pp. 183-197