3.3.2.2 Sortierverfahren Bubble Sort
Auf dieser Seite vermittelt das Programm »bubblesort.py« einen Eindruck, wie die Python-Methoden »sort« und »sorted« Ganzzahlen innerhalb einer Liste aufsteigend sortieren.
Programm »bubblesort.py«
In der Abbildung 1 ist der Algorithmus des Sortierverfahrens Bubble Sort dargestellt, der dem Programm zugrunde liegt.
In der Abbildung 2 ist die Ausführung des Bubble-Sort-Algorithmus in einer Tabelle dokumentiert:
- aus der Tabelle geht hervor, wie der Bubblesort-Algorithmus die Ganzzahlen in der Liste aufsteigend sortiert
Aufgabe A31
Dokumentiere in einer Tabelle – wie in der Abbildung 2 dargestellt – die Ausführung des Algorithmus Bubble Sort:
- Verwende statt der Liste [5, -2, 13, 0, 9] die Liste [56, 7, -21, 0, -6, 1]
Versuche zu vertstehen, wie der Algoritmus die Ganzzahlen in der Liste aufsteigend sortiert.
Aufgabe A32
Implementiere ein Programm »bubblesort.py« am Computer.
Das Programm soll aus drei Teilen bestehen:
- der Callback-Funktion »eingeben«
- der Callback-Funktion »sortieren«
- der grafischen Benutzeroberfläche GUI - dem Hauptfenster (wie z. B. in der Abbildung 3 dargestell)
Das Programm soll das Folgende leisten:
- (E) Eingabe einer Liste, deren Elemente Ganzzahlen sind
- (V) die Elemente (Ganzzahlen) der Liste aufsteigend sortieren.
- (A) die aufsteigend sortierte Liste ausgeben
Führe das Programm u. a. mit folgenden Eingaben aus und teste, ob es fehlerfrei läuft und den gestellten Anforderungen entspricht:
- [5, -2, 13, 0, 9]
- [67, 12, -4, 45, 0, 2, 98, -34, 45]
- [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
- [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
- [1]
Der Bereich »range(anzahl-(i+1))« umfasst die Zahlen von 0 bis ausschließlich anzahl-(i+1).
- hat »anzahl« beispielsweise den Wert 6 und »i« den Wert 2, umfasst der Bereich »range(anzahl-(i+1))« die Zahlen 0, 1, und 2.