001
24.04.2010, 21:49 Uhr
Hans
Library Walker (Operator)
|
Hi,
'ne wirkliche Ahnung hab ich nicht, aber so rein intuitiv würde ich mal sagen, das Du in dem Unterprogramm noch 'ne Zählvariable einbauen musst, womit Du die Vergleiche zählst, die gemacht werden. - Diese dann auch in einem weiteren Parameter zurück geben.
Dann benötigst Du ein Programm, das diese Suchroutine auf unterschiedlich grossen Datenfeldern anwendet, d.h. diese durchsucht. Diese Datenfelder würde ich der Vergleichbarkeit wegen fest vorgeben, z.b. als separate Dateien, die das Programm vorher einliesst. Die sollten ausserdem auch in mehreren Versionen vorliegen: einmal vollständig sortiert, einmal möglichst stark durcheinander, und vielleicht noch ein oder zwei Abstufungen dazwischen, also teilweise sortiert. Dann lässt Du das Programm der Reihe nach die verschiedenen Datenfelder durchsuchen und die Ergebnisse in eine Protokolldatei schreiben.
Nehmen wir mal an, Du hast drei Datendateien, eine mit 100, eine mit 1000 und eine mit einer Mio. Elementen. Diese in jeweils zwei "Geschmacksrichtungen", nämlich sortiert und unsortiert. Dann fängst Du mit der kleinen, sortierten Datei an, und suchst darin z.B. 5 oder 10 Werte, wobei Du die Ergebnisse protokollierst. Anschliessend suchst Du die gleichen Daten in der unsortierten Datei. Wenn Du die Ergebnisse hast, machst Du das gleiche mit der nächst grösseren Datei, in diesem Fall also mit 1000 Elementen. Und schliesslich mit der grossen Datei von einer Mio. Elementen.
Wenn sich zwischen den Ergebnissen grosse Lücken auftun, wirst Du wohl noch ein paar Vergleichsdateien erstellen müssen, etwa in 100er oder 1000er Schritten, soll heissen jede Datei enthält 100 oder 1000 Elemente mehr.
Wenn Du die Ergebnisse so in die Protokolldatei schreibst, das sie schon eine Tabellenstruktur aufweisen, kannst Du sie anschliessend in eine Tabellenkalkulation importieren, und diese daraus eine grafische Darstellung machen lassen... (Wahrscheinlich erleichtert die Tabellenkalkulation auch die weitere statistische Analyse, bei der am Ende heraus kommt, das der Algorithmus eine Laufzeit von O(x) hat.)
So, ich hoffe, das hilft etwas weiter, Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |