Bubblesort in einfachen unmissverständlichen Sätzen

Status
Nicht offen für weitere Antworten.

Binary.Coder

Aktives Mitglied
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:
Code:
1.	Setzte aktuelleKarte = Anfang
Setzte zaehler=0
Setzte 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
Setzte zaehler = 0 
Setzte tausch = false
Setzte 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 
•	setzte aktuelleKarte = aktuelleKarte + 1
•	setzte tausch =true
•	setze zaehler+=1
•	Gehe zu Schritt 2
	Ansonsten 
•	setzte aktuelleKarte = aktuelleKarte + 1
•	Gehe zu schritt 2 setzte 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.[/code]
 
also so komplett hab ich das nun nicht durchgesponnen, aber bubblesort hätt ich anders beschrieben, was mich ein wenig bezüglich bubblesort stört ist die abbruchbedingung
2. Wenn zaehler=26 und tausch=false
Gebe Meldung „Sortiert“ aus

Bei 52 Karten versteh ich nicht was die 26 als Abbruchkriterium soll, und wozu die bool'sche Variable tausch brauchst.

Nen Bubblesort vergleicht für mich, ein element Xi der Kartenmenge (i = [0,50] ) mit all seinen Nachfolgern Xj (j = [i+1,51]) ... und ne direkte tauschanweisung fehlt mir auch irgendwo :roll: somit hast alle nötigen vergleiche vollzogen und sofern der Computer entscheiden kann ob (Herz 9 < Herz 10 ODER Herz 9 < Pik As), was laut Aufgabestellung ja möglich ist, brauchst da nichtmal gross bedingungen prüfen, sondern einfach nur Karte Xj < Xi .. wenn ja dann tausche, wenn nicht, mach nix und schleife läuft weiter
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben