Registriert seit: 19. Dez 2002
476 Beiträge
|
Re: Bubble-Sort
28. Feb 2006, 13:57
Hallo,
wenn die Prozedur vertauschen aufgerufen wird, werden ihr 2 Zeichen übergeben, die in a und b gespeichert werden.
a wird dann in h zwischengespeichert.
dann wird a zu b
und b wird zu h, also dem alten a-Wert
Zur Erklärung des Restlichen:
Du hast 2 for-Schleifen. Angenommen du hast das Wort HILFE
Jetzt durchläufst du das Wort HILFE mit EINER For-Schleife.
Dann vergleichst du im 1. Schritt H und I, H ist kleiner als I also nicht vertauschen
Dann vergleichst du im 2. Schritt I und L, I ist kleiner als L also nicht vertauschen
Dann vergleichst du im 3. Schritt L und F, L ist größer als F also vertauschen
Hier zeigt sich für mich ein Fehler in vertauschen:
außer die Buchstaben in beliebigen Variablen zu tauschen, wird nichts gemacht.
Das Wort HIFLE sollte irgendwo gespeichert werden um damit weiterarbeiten zu können.
z.B. durch word2[k-1]:=a und word2[k]:=b
In Folge dessen zeigen sich aber noch mehr Schwächen in dem Programm.
Hast du die Schleife beendent, in diesem Fall die innere Schleife, erhälst du das Wort HIFEL
Jetzt musst du die Sortierung aber nochmal drüberlaufen lassen, denn jeder Buchstabe wird ja nur um einen Platz verschoben, wenn es nötig ist. Im schlimmsten Fall steht ganz hinten ein A und muss nach ganz vorne gebracht werden.
Daher brauchst du also eine zweite Schleife.
Der Algorithmus den du vorgelegt hast, berücksichtigt die letzte Stelle des Wortes allerdings nur beim 1. Durchgang, was für mich nicht verständlich ist.
Gruß Minz
|