Hier mal ein etwas anderes Posting, um die Kreativität der LeserInnen hier herauszufordern und gleichzeitig praktische Beispiele für Laufzeitoptimierungen zu geben.
Hierfür habe ich ein Rahmenprogramm geschrieben, was die äußeren Gegebenheiten simuliert und eine Laufzeitmessung durchführt. Als Referenz habe ich eine (schlechte) Beispiellösung eingebaut, die dafür sorgt, dass a) nur gültige Ergebnisse akzeptiert werden und b) ein Vergleich der Laufzeitverbesserung auch auf verschiedenen Systemen möglich ist, indem einfach ein Optimierungsfaktor bestimmt wird, um wieviel besser die optimierte Routine gegenüber der Referenzroutine ist.
Situation
Es ist eine Tabelle gegeben mit n Einträgen. Die Tabelle besteht aus 2 Feldern - einer (Material)nummer ( von 1 bis m ) und ein Buchungsdatum im laufenden Jahr (1.1.2004 - 31.12.2004).
An eine Unterroutine wird die gesamte Tabelle und "m" übergeben. In der Routine sollen nun folgende 3 Zahlen ermittelt werden.
1.) "Dauerbrenner" - alle Materialien, die in jedem Monat eine Buchung haben
2.) "Saisonartikel" - alle Materialien, die in 10-11 Monaten eine Buchung haben.
3.) "Ladenhüter" - alle Materialien, die in weniger als 10 Monaten eine Buchung haben.
Die genauen bezeichnungen der Variablen bzw. Strukturen ist dem Programm zu entnehmen.
Eine Referenzlösung ist mit dem Unterprogramm "REFERENZ" angegeben - die Laufzeit, die diese Routine benötigt dient als Vergleich zu der optimierten Routine.
Aufgabe
Es existiert eine Formroutine "VERGLEICH", die genauso angesprochen werden kann wie die Routine "REFERENZ". In diese "VERGLEICH"-Routine soll eigenes oder überarbeitetes Coding gestellt werden, das das Problem ebenfalls korrekt löst - aber möglichst schneller.
Regeln
- Es dürfen keine globalen Variablen definiert oder gelesen werden (insbes. nicht die Referenzlösung ).
- Globale Typen dürfen definiert werden (falls das wirklich jemand für nötig hält), damit man saubere Übergaben an weitere Unterprogramme durchführen kann.
- Weitere Forms, Makros etc. dürfen definiert werden (falls benötigt).
- Schon gepostete Routinen dürfen weiteroptimiert werden - von Jedermann.
Coding - Rahmenprogramm
wenn das hier klappt ist irgendwo ein Attachment zu sehen - in dem ist der "gezippte" Quältext
Aufruf
Ans Werk - wer holt den Hi-Score ?
VIEEEEL SPASS