Geschrieben von ttobsen am 25.08.2004, 03:26

Hi Leute

in meinem 3ten Tutorial präsentiere ich euch eine ganz einfache Logische Folge wie man schnell und präzise Daten (in unserem Beispiel INTEGER Werte) sortieren kann.

Während sich meine anderen Tutoriale auf eine eigene Programmiersprache bezogen ist dieses hier nur ein rein logischer Ablauf ohne Programm Syntax, etc.

Dieses Beispiel kann somit in JEDER!!! programmiersprache nachgemacht werden.

Also fangen wir an (jetzt wird das Gehirn gefragt! ;) )

Als Beispiel nehmen wir 5 Zahlen, welche Quer durcheinander sind

7 4 2 6 5

diese sollen jetzt von links nach rechts aufsteigend sortiert werden.

Dies geschieht mit folgender Logik:

7 4 2 6 5
----

Es werden immer 2 Zahlenpaare betrachtet. Wenn das linke größer ist als das rechte werden die Zahlen vertauscht. Unsere Reihenfolge sieht demnach so aus:

4 7 2 6 5

Nun wird die 7 mit der 2 verglichen. Das geht immer um eine Zahl weiter. Nach 4 Vergleichen (alle "AnzahlZahlen - 1" ist ein Durchgang), ist der erste durchgang beendet und unsere Zahlenfolge sieht so aus:

4 2 6 5 7

man sieht das sich die 7 von ganz vorne nach ganz hinten verschoben hat.

Damit die Zahlen nun in der richtigen Reihenfolge sortiert werden sind soviele Durchgänge nötig, wie Anzahl der Zahlen, also hier 5 (das macht 5 * 4 = 20 Vergleiche). Mit 5 durchgängen ist absolut sicher gestellt das die Zahlen sortiert sind!

Nach logischem Programmiertext sieht das nun so aus (die Zahlen sind dazu in einem Array gespeichert!)

Für i=1 bis AnzahlZahlen
Für k=1 bis (AnzahlZahlen - 1)

wenn zahl[k] > zahl[k+1] dann TAUSCHEZAHLEN

Ende
Ende

Um Zahlen zu tauschen muß man folgendes tun

Hilfsvariable = zahl[k]
zahl[k] = zahl[k+1]
zahl[k+1] = hilfsvariable

Damit sieht unser Kompletter Algorithmus folgender Maßen aus:

Für i = 1 bis AnzahlZahlen
Für k = 1 bis (AnzahlZahlen - 1);

wenn zahl[k] > zahl[k+1] dann
Hilfsvariable = zahl[k]
zahl[k] = zahl[k+1]
zahl[k+1] = hilfsvariable

ende
ende

War doch relativ einfach, wenn nicht einfach mehrmals durchlesen. Für mich ist es jedenfalls die einfachste Art um Werte zu sortieren. Hilfreich ist es wenn man sich die Werte auf ein Blatt schreibt und dann bei jedem Schleifendurchlauf die neuen Werte aufschreibt, so wie ich es oben getan hab bei dem Beispiel. Das hilft Fehler zu entdecken und zu vermeiden. ausserdem versteht man so den Algorithmus besser.

So das wars für heute, bis zum nächsten Tut.

gruß Tobi

Bewertung Anzahl
4
66,7 %
2 Bewertungen
2
33,3 %
1 Bewertungen