Sortieren durch Auswählen / Selectionsort

Spielkarten sortieren

Wie kann man Spielkarten sortieren? Auf YouTube wird ein Verfahren gezeigt, das Selectionsort genannt wird: Selectionsort mit Karten.

Sortieranimation
Quelle: YouTube

Aufgabe 1

Schaue dir das Video genau an. Kannst du die Grundidee des benutzten Sortierverfahrens beschreiben?

Die Grundidee

Die folgende Abbildung verdeutlicht die Grundidee eines Sortierverfahrens, das "Sortieren durch Auswahl" oder "Selectionsort" genannt wird.

Selectionsort - Idee

Aufgabe 1

(a) Welches Element wird hier jeweils ausgewählt (und mit einem Pfeil markiert)? Was wird mit diesem Element gemacht? Welche Eigenschaft hat der blau unterlegte Bereich? Beschreibe die Grundidee des Verfahrens in Worten.

(b) Spiele den beschrieben Sortiervorgang einige Schritte weiter (bis zum Ende) durch. Du kannst die folgende Kurznotation zur Dokumentation benutzen:

[]     [25  17  32  56  25  19   8  66  29   6  20  29]
                                             ^

[6]        [25  17  32  56  25  19   8  66  29  20  29]
                                     ^		 

[6   8]        [25  17  32  56  25  19  66  29  20  29]
                     ^		 

[6   8  17]        [25  32  56  25  19  66  29  20  29]
                                     ^		 

(c) Hier eine Variante des oben beschriebenen Sortierverfahrens. Was wird hier anders gemacht?

Selectionsort - Idee

(d) Im Internet gibt es zahlreiche Animationen zum Sortierverfahren "Selectionsort", z.B. Selectionsort. Überprüfe mit einer Animation, ob du das Verfahren verstanden hast.

Ablaufmodellierung

Die Idee des Sortierverfahrens Sortieren durch Auswählen ist sehr einfach: Man sucht das kleinste Element im unsortierten Bereich und plaziert es in einen sortierten Bereich. Das macht man solange, wie Elemente im unsortierten Bereich sind.

Wir betrachten die Version mit zwei getrennten Bereichen (Listen):

[]     [25  17  32  56  25  19   8  66  29   6  20  29]
                                             ^

[6]        [25  17  32  56  25  19   8  66  29  20  29]
                                     ^		 

[6   8]        [25  17  32  56  25  19  66  29  20  29]
                     ^		 

[6   8  17]        [25  32  56  25  19  66  29  20  29]
                                     ^

...

Informell lässt sich dieser Ablauf so beschreiben:

ALGORITHMUS selectionsort
Übergabe: Liste L
unsortierter Bereich ist die gesamte Liste L
der sortierte Bereich ist zunächst leer
SOLANGE der unsortierte Bereich noch Elemente hat:
    suche das kleinste Element im unsortierten Bereich
	entferne es im unsortierten Bereich
	füge es im sortierten Bereich an letzter Stelle an
    Rückgabe: sortierter Bereich

Aufgabe 2

(a) Ergänze das folgende Struktogramm zur Präzisierung des Algorithmus selectionsort.

Selectionsort - Struktogramm

Beachte, dass hier ein Algorithmus entfernen benutzt wird, der an anderer Stelle präzisiert werden muss.

(b) Betrachte die Version mit einem Bereiche (Liste):

[25  17  32  56  25  19   8  66  29   6  20  29]
                                      ^

[ 6| 17  32  56  25  19   8  66  29  25  20  29]
                          ^		 

[ 6   8| 32  56  25  19  17  66  29  25  20  29]
                          ^		 

[ 6   8  17| 56  25  19  32  66  29  25  20  29]
                      ^		 

...

Beschreibe den Ablauf zunächst informell und modelliere ihn anschließend mit einem Algorithmus in Struktogrammform.

(c) Implementiere den Algorithmus selectionsort (in einer der betrachteten Varianten) und teste das entwickelte Programm.

X

Fehler melden

X

Suche