Algorithmen und Datenstrukturen I
Projekt 1: Laufzeitmessung von Sortieralgorithmen
Um die Verschiedenen Algorithmen miteinander vergleichen zu können, habe ich mir
ein kleines Programm geschrieben, dass die Laufzeit verschiedener Algorithmen miteinander
vergleicht.
Debug-Modus
Wird das Programm im Debug-Modus gestartet, so wird jeder Algorithmus der Reihe nach mit
einem Array der Größe 15 gestartet und die einzelnen Sortierschritte ausgegeben. Damit
kann man nachprüfen, ob ein Algorithmus korrekt arbeitet.
Speziell für den QuickSort gibt es eine gesonderte Ausgabe: Die einzelnen Teilarrays
werden in eckigen Klammern gekennzeichnet und der Rest des Arrays wird ausgeblendet. Dabei
wird als Schrittnummer das Referenz-Element ausgegeben. Am
Ende jeden Schrittes wird dann das komplett bearbeitete Array ausgegeben. Dabei wird als
Schrittnummer eine 0 ausgegeben.
Bei Shell-Sort werden als Schritt jeweils die Schrittweiten des jeweiligen Durchlaufes angezeigt.
Normaler Modus
Im normalen Betriebsmodus wird zunächst die Anzahl der Wiederholungen abgefragt. Als Laufzeit wird dann
der arithmetische Mittelwert aller Durchläufe angezeigt. Dann werden alle Algorithmen auf zufällig erzeugte
und dannach auf sortierte Arrays der Größe 10.000 angewandt und jeweils die Laufzeiten ausgegeben.
Programm-Download
Laufzeitmessung für Sortieralgorithmen 0.1b (Größe: 57 kB | Stand: 11.09.2003 | Downloads: 1300
)
Die aktuelle Version wird noch mit allen Debug-Informationen unter VC++ 5.0
compiliert. Alle anderen Varianten der Compilierung erzeugen zwar genauere Werte, sind aber
zum testen des Programmes nicht akzeptabel.
Wer Probleme mit der Laufzeitmessung bei den schnellen Algorithmen hat, der sollte die Konstante
"WERTE" auf einen höheren Wert setzen. Dann werden allerdings die langsammen Algorithmen erheblich
langsammer.
|