Hallo zusammen,
mein Arbeitsauftrag lautet:
Ein gemischter Stapel aus 52 Spielkarten soll sortiert werden. Die Farben sollen in die
Reihenfolge Karo, Herz, Pik, Kreuz gebracht werden. Die Reihenfolge der Kartenwerte
sei 2, 3, 4, 5, 6, 7, 8, 9, 10, Bube, Dame, K¨onig, As. Die Farbe sei das st¨arkere
Sortierkriterium; eine Herz-Karte soll also immer vor einer Pik-Karte stehen.
Aufgabe 1 a)
Entwerfen Sie einen Algorithmus zum Sortieren der Spielkarten. Beschreiben Sie den
Algorithmus mit einfachen unmissverst¨andlichen S¨atzen. Es darf davon ausgegangen
werden, dass der Computer den Rang zweier Karten direkt vergleichen kann. D.h. f¨ur
zwei beliebige Karten (z.B. Pikbube und Karoneun) kann der Computer entscheiden,
welche Karte in der sortierten Folge zuerst erscheinen muss (im Beispiel die Karoneun).
Der Computer kann immer nur zwei Karten direkt vergleichen. Anweisungen wie “Finde
die niederwertigste noch ¨ubrige Karte” sind daher nicht erlaubt.
Meine Lösung lautet:
Delphi-Quellcode:
1. Setze aktuelleKarte = Anfang
Setze zaehler=0
Setze tausch=false
2. Wenn zaehler=26 und tausch=false
Gebe Meldung „Sortiert“ aus
Wenn tausch = false und zaehler ungleich 26
gehe zu Schritt 3
Wenn zaehler tausch = true
Setze zaehler = 0
Setze tausch = false
Setze aktuelleKarte = Anfang
Gehe zu Schritt 3
3. Prüfe ob aktuelleKarte größer als nächste Karte
Wenn aktuelleKarte Größer als nächsteKarte:
• dann führe Tausch aus
• setze aktuelleKarte = aktuelleKarte + 1
• setze tausch =true
• setze zaehler+=1
• Gehe zu Schritt 2
Ansonsten
• setze aktuelleKarte = aktuelleKarte + 1
• Gehe zu schritt 2 setze zaehler+=1
Meine Fragen:
1.Fällt euch ein Fehler auf? Meine Probe führte zu keinem
2.Entspricht meine Lösung dem Bubblesort?
Konnte mich nicht mehr richtig daran erinnern.
Dies ist wichtig, um die 1 b, welche um den Aufwand geht, zu bestimmen.