This commit is contained in:
harald.mueller@tbz.ch 2021-08-06 23:14:28 +02:00
parent d61223f5e0
commit 2ff3eef441

View File

@ -18,28 +18,26 @@ eine Zeile, …) damit man sehen kann, wie sich der Algorithmus verhält und sic
die Resultate entwickeln. die Resultate entwickeln.
Bewertung: Bewertung: Keine, ist aber prüfungsrelevant
Keine, ist aber prüfungsrelevant
**Der Bubblesort** ### Der Bubblesort
**Lernziele:** **Lernziele:**
- Sie haben das Prinzip des Bubblesort verstanden - Sie haben das Prinzip des Bubblesort verstanden
- Sie können eine Aussage über die Effizienz des Bubblesorts machen - Sie können eine Aussage über die Effizienz des Bubblesorts machen
**1 Sortieren in Schritten** #### 1 Sortieren in Schritten
Für die folgenden Aufgaben brauchen Sie Papierschnitzel mit den unten stehenden Für die folgenden Aufgaben brauchen Sie Papierschnitzel mit den unten stehenden
Zahlen: Zahlen:
**51, 13, 9, 44, 18, 93, 25** **51, 13, 9, 44, 18, 93, 25**
Schreiben Sie diese Zahlen auf Notizpapier auf und zerschneiden Sie es. Schreiben Sie diese Zahlen auf Notizpapier auf und schreiben Sie die Entwicklung des BubbleSort Zeile für Zeile untereinander auf.
**1.1 Aufgabe: Sortieren nach Grösse** ##### 1.1 Aufgabe: Sortieren nach Grösse
Sortieren Sie die Papierschnitzel ausgehend von der obigen Reihenfolge der Sortieren Sie die Papierschnitzel ausgehend von der obigen Reihenfolge der
Grösse nach aufsteigend, so dass die kleinste Zahl links und die grösste rechts Grösse nach aufsteigend, so dass die kleinste Zahl links und die grösste rechts
@ -47,14 +45,14 @@ zu liegen kommt.
- Können Sie beschreiben, wie Sie vorgegangen sind? - Können Sie beschreiben, wie Sie vorgegangen sind?
**1.2 Aufgabe: nur benachbarte Schnipsel vertauschen** ##### 1.2 Aufgabe: nur benachbarte Schnipsel vertauschen
Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren
Sie zum zweiten Mal der Grösse nach aufsteigend. Aber: dieses Mal ist nur eine Sie zum zweiten Mal der Grösse nach aufsteigend. Aber: dieses Mal ist nur eine
**einzige Operation** auf den Papierschnipsel erlaubt, und zwar dürfen Sie nur **einzige Operation** auf den Papierschnipsel erlaubt, und zwar dürfen Sie nur
jeweils zwei benachbarte Schnipsel vertauschen. jeweils zwei benachbarte Schnipsel vertauschen.
**1.3 Aufgabe: systematisch von links nach rechts** ##### 1.3 Aufgabe: systematisch von links nach rechts
Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren Bringen Sie die Papierschnipsel wieder in die Ausgangssituation und sortieren
Sie sie wieder durch Vertauschen von Nachbarn, aber wählen Sie diesmal die Sie sie wieder durch Vertauschen von Nachbarn, aber wählen Sie diesmal die
@ -75,7 +73,7 @@ beim letzten Paar ganz rechts angekommen sind.
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
**2 Definition Bubblesort-Algorithmus** #### 2 Definition Bubblesort-Algorithmus
Der Bubblesort-Algorithmus sortiert eine Liste von Elementen aufsteigend, indem Der Bubblesort-Algorithmus sortiert eine Liste von Elementen aufsteigend, indem
er so lange von links nach rechts durch die Liste geht und benachbarte Elemente er so lange von links nach rechts durch die Liste geht und benachbarte Elemente
@ -86,15 +84,15 @@ Als Flussdiagramm:
![](media/0bf179a2c5f431b207fe5c6804bbcfab.jpg) ![](media/0bf179a2c5f431b207fe5c6804bbcfab.jpg)
**2 Effizienz von Bubblesort** #### 3 Effizienz von Bubblesort
**2.1 Anzahl Durchgänge** ##### 3.1 Anzahl Durchgänge
Überlegen Sie sich, wie viele Durchgänge von links nach rechts maximal nötig Überlegen Sie sich, wie viele Durchgänge von links nach rechts maximal nötig
sind, um eine Liste mit *n* Elementen zu sortieren. Sortieren Sie folgende Liste sind, um eine Liste mit *n* Elementen zu sortieren. Sortieren Sie folgende Liste
mit dem Bubblesort-Algorithmus und schreiben Sie sämtliche Zwischenschritte auf: mit dem Bubblesort-Algorithmus und schreiben Sie sämtliche Zwischenschritte auf:
97 15 33 28 25 11 73 97, 15, 33, 28, 25, 11, 73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---| |---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@ -109,7 +107,7 @@ landet mindestens eine der Zahlen an seinem definitivem Platz (es genügen sogar
*n-1* Durchgänge, weil die letzte Zahl keinen Nachbar mehr hat, mit dem sie *n-1* Durchgänge, weil die letzte Zahl keinen Nachbar mehr hat, mit dem sie
vertauscht werden könnte). vertauscht werden könnte).
**2.2 Anzahl Vergleichsoperationen** ##### 3.2 Anzahl Vergleichsoperationen
In einer Liste mit *n* Zahlen gibt es *n*-1 Paare von benachbarten Zahlen, die In einer Liste mit *n* Zahlen gibt es *n*-1 Paare von benachbarten Zahlen, die
bei einem Durchgang verglichen werden müssen. Und wir haben höchstens *n* bei einem Durchgang verglichen werden müssen. Und wir haben höchstens *n*
@ -118,14 +116,14 @@ Durchgänge. Somit sind *n*(*n*-1) Vergleichsoperationen maximal nötig.
Wir können somit sagen, dass es ungefähr *n2* Vergleichsoperationen für eine Wir können somit sagen, dass es ungefähr *n2* Vergleichsoperationen für eine
Liste mit n Elementen gibt. Liste mit n Elementen gibt.
**2.3 Aufwand im besten und im schlechtesten Fall** ##### 3.3 Aufwand im besten und im schlechtesten Fall
Wenn die Liste bereits sortiert ist, vergleicht der Algorithmus alle *n-1* Wenn die Liste bereits sortiert ist, vergleicht der Algorithmus alle *n-1*
benachbarten Zahlenpaare einmal und stellt fest, dass es nichts zu tun gibt. benachbarten Zahlenpaare einmal und stellt fest, dass es nichts zu tun gibt.
Damit ist er fertig und es werden keine Zahlen vertauscht. Das ist der beste und Damit ist er fertig und es werden keine Zahlen vertauscht. Das ist der beste und
schnellste Fall und benötigt *n-1* Vergleiche und 0 Vertauschungen. schnellste Fall und benötigt *n-1* Vergleiche und 0 Vertauschungen.
**2.4 Aufgabe: der schlechteste Fall** ##### 3.4 Aufgabe: der schlechteste Fall**
Überlegen Sie sich die Effizienz im schlechtesten Fall (d.h. wenn eine Liste Überlegen Sie sich die Effizienz im schlechtesten Fall (d.h. wenn eine Liste
absteigend sortiert ist und aufsteigend sortiert werden soll). absteigend sortiert ist und aufsteigend sortiert werden soll).