Die Webseiten der Fachschaft Informatik am ERG Saalfeld


Bubble-Sort

Bubble-Sort ist das einfachste Sortierverfahren, es ist "in-place" und die Anzahl der Elemente bleibt erhalten.

 

Beispiel:

Es werden nur die Vertauschungen angegeben und zwar sind die Elemente hervorgehoben, die gerade getauscht worden sind.

Das unsortierte Feld: 2   5   9   8   1   5   2   4
Wir gehen jetzt das Feld der Reihe nach durch. Sind 2 Elemente in der falschen Reihenfolge, werden diese getauscht. 2   5   8   9   1   5   2   4
  2   5   8   1   9   5   2   4
  2   5   8   1   5   9   2   4
  2   5   8   1   5   2   9   4
Damit ist die größte Zahl an die letzte Stelle gekommen: 2   5   8   1   5   2   4   9

Wir fangen wieder von vorn an. Das erste getauschte Paar ist: 2   5   1   8   5   2   4   9
  2   5   1   5   8   2   4   9
  2   5   1   5   2   8   4   9
Damit ist die 2. größte Zahl an der vorletzten Stelle: 2   5   1   5   2   4   8   9

Wir fangen wieder von vorn an. 2   1   5   5   2   4   8   9
  2   1   5   2   5   4   8   9
Jetzt ist die drittgrößte Zahl an der 3. Stelle von hinten. 2   1   5   2   4   5   8   9

Wir fangen wieder von vorn an. 1   2   5   2   4   5   8   9
  1   2   2   5   4   5   8   9
  1   2   2   4   5   5   8   9

 

Das Programm zum Sortieren mit Bubble-Sort sieht so aus:

Programm

feld = [2,5,9,8,1,5,2,4]

#Ausgabe des unsortierten Felds
for a in feld:
    print(a,end=' ')
print('\n')

#sortieren mit Bubble-Sort
anzahl = len(feld)
for j in range(0,anzahl):
    for i in range(0,anzahl - j -1):
        if feld[i] > feld[i+1]:
            help = feld[i]
            feld[i] = feld[i+1]
            feld[i+1] = help

for a in feld:
    print(a,end = ' ')

 

Der Aufruf sah bei mir so aus:

 

Aufgaben

  1. Bringen Sie das Programm zum Laufen.
  2. Kommentieren Sie die Zeilen 10 bis 15 (das eigentliche Sortieren).
  3. Was bewirkt in der Zeile 11 bei  "anzahl - j - 1"  das "j"?
  4. Ändern Sie das Programm so, dass die Elemente gewürfelt werden.
  5. Ändern Sie das Programm so, dass die Anzahl der Elemente in einer Variablen angegeben werden.
  6. Ändern Sie das Programm so, dass die Anzahl der Elemente als Parameter übergeben wird.
  7. Ändern Sie das Programm so, dass die gewürfelten Zahlen im Bereich 100 bis 900 liegen.
  8. Gestalten Sie die Ausgabe attraktiver.

 

Weblinks

  1. Wikipedia: Bubblesort

 

zurück


© ERG Saalfeld   -   HD. Kirmse + Dustin Wiese     letztes Update 29.05.2023