BubbleSort

Der BubbleSort ist ein nicht besonders effizienter aber einfacher Sortieralgorithmus, der durch das Vergleichen von benachbarten Elementen und deren Vertauschung es schafft, eine Datenmenge in quadratisch ansteigender Laufzeit zu sortieren. Obwohl er nicht besonders effizient ist, wird er oft auf kleine Datenmengen angewandt und gehöhrt zu den Standardalgorithmen, die jeder Programmierer kennen sollte.

Da der Algorithmus auf grösseren Datenmengen schlechte Laufzeiten erzielt, wird er häufig in Verbindung mit anderen Sortieralgorithmen verwendet. Zum Beispiel ist eine Kombination von QuickSort und BubbleSort denkbar, um dem Quicksort auf kleinen Datenmengen von z.B. 6 Elementen weitere Rekursionsaufrufe abzunehmen. Der Vorteil des Algorithmus an sich ist, dass er mehrere Möglichkeiten zur Optimierung in sich birgt. Jedoch wird seine Laufzeitkomplexität dadurch nicht beeinträchtigt. Eine bekannte optimierte Variante des BubbleSorts ist der 'bidirektionale BubbleSort'. Auf diese Variante wird später in diesem Artikel eingegangen. Durch eine kleine Veränderung ist der BubbleSort in der Lage zu erkennen, ob die zu sortierende Datenmenge schon sortiert ist. Somit verfügt er über die Eigenschaft seine Ausführung vorzeitig abbrechen zu können und nicht unnötig die Rechnerleistung zu beanspruchen.

Seinen Namen verdankt der Algorithmus wohl dem Gleichnis der Elemente mit Luftblasen, da beim Sortieren die kleinen Datenelemente in der Datenmenge wie Luftblasen aufsteigen, während die grösseren Elemente dabei sinken. Der Kern des BubbleSorts beschränkt sich auf das Vergleichen von zwei Elementen, die unmittelbar benachbahrt sind, und diese zu vertauschen falls sie in der falschen Ordnung zueinander liegen. Durch mehrmaliges Durchlaufen der Datenmenge und des Anwendens der Vergleichs- und Vertauschoperationen stellt der Algorithmus eine Ordnung in der Datenmenge her.



Unterabschnitte
Nächste Seite  Aufwärts  Vorherige Seite  Inhalt 


Nächste Seite: Arbeitsweise Aufwärts: Sortieren Vorherige Seite: Sortieren   Inhalt

2002-05-09