Der gesamte Code ist in C++ geschrieben - es sollte jedoch keine größeren Probleme bereiten, ihn in eine andere höhere Programmiersprache, wie z.B. Pascal zu portieren.
In C++ werden die Felder mit 0 beginnend indiziert. feld[0] bezeichnet daher das erste Element von feld. Da dies jedoch ungewohnt für uns ist, da wir normalerweise mit der Zahl 1 anfangen zu zählen; feld[0] oft als "Marker-Element" benutzt wird; und in einigen anderen Sprachen (Pascal ?!?) das erste Element mit 1 angesprochen wird, lassen wir es in der Regel frei und schreiben den ersten "normalen" Wert in feld[1].
Man beachte, dass: wert = feld[i++]; und wert = feld[++i]; NICHT das selbe ist! Der erste Ausdruck weist zunächst wert den Inhalt von feld[i] zu und inkrementiert i danach, wogegen der zweite Ausdruck zuerst i inkrementiert und danach wert den Inhalt von feld[i] zuweist.
Sämtliche Funktionsname fangen mit "cm_" an, da sie von Christoph Müller codiert worden sind.
Oft findet man die Wörter itemType und dataType. Bevor man die Listings in seine Programme einbauen kann, muß man per typedef oder der template Funktion den Typ (int, float, ein selbst definierter Typ, etc.) der Objekte, die durch itemType bzw. dataType definiert werden, anpassen.
keineDaten und minKey müssen mit Werten vorbelegt werden, die angeben, was zurückgegeben werden soll, wenn das gesuchte Element nicht vorhanden ist bzw. (minKey) welcher Wert kleiner ist, als der kleinste zu erwartende Schlüssel.
N bezeichnet immer die Obergrenze der betrachteten Elemente, max dient meist zur Kennzeichnung der Feldobergrenze.
Die cm_Tausch() Funktion, die von einigen der Sortieralgorithmen verwendet wird, um zwei Elemente eines Feldes mit einander zu vertauschen, findest du hier.
Alle Sortiermethoden setzen auf Feldstrukturen auf, da sie auf verkettete Listen nur schwer und mit z.T. beträchtlichem Aufwand anwendbar sind.
Bitte schau an, wie die einzeilnen Algorithmen in Programmen eingebaut
werden können, indem du dir die entsprechenden
Listings runterlädst. Dadurch wird oft einiges deutlich klarer.
Bitte schreibe mir an webmaster@christoph-mueller.de,
falls es noch irgendwelche Unklarheiten gibt, so dass ich sie durch
die Aufnahme in diese Liste (hoffentlich) beseitigen kann.