Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
12. Mär 2012
Das ist genau das, was ich auch nicht ganz nachvollziehen kann. Warum sollte das schneller als z.B. mein Ansatz sein?
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
12. Mär 2012
Schon klar, siehe mein Post oben:
;)
Was aber ja bei meinem Ansatz nicht der Fall ist ;)
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
12. Mär 2012
Das Problem wird hier nicht die Suche an sich sein, sondern das Laden von der Platte (langsames I/O...). Bei deinem Ansatz müssen zuerst alle Daten von der Platte gelesen werden (und zwar sicher *alle*), zusätzliche müssen sie dann noch in eine Hashtable geschmissen werden, und erst dann beginnt die Suche (das mag in O(1) klappen, aber vorher ging schon sehr viel Zeit für das Laden drauf...). Die...
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
12. Mär 2012
Ist es immer so, dass die einzelnen Dateien so unterschiedlich groß sind? Und dass vor allem immer eine Datei dabei ist, die in Relation so klein ist? Wenn ja, dann ist der Ansatz mit der binären Suche sicherlich nicht verkehrt.
Wenn sie in etwa gleich groß sind, dann bekommst du mit dem Ansatz allerdings ein Problem mit der Laufzeit, dann sollte mein Ansatz schneller sein.
Beispiel mit 4...
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
11. Mär 2012
Bezieht sich das jetzt auf mein oder auf mein Edit? ;)
Edit: Dein Post kam vor meinem Edit, wo war die rote Box? :gruebel:
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
11. Mär 2012
Oder so :thumb:
;)
Edit: Aber schneller als meine Lösung dürfte das auch nicht sein, eher im Gegenteil. Es müssen trotzdem alle Zeilen aller Dateien iteriert werden, zusätzlich entsteht durch das Einfügen/Suchen in der Hashmap ein Overhead (auch wenn der bei Hashmaps eher gering ausfällt). Mein Ansatz funktioniert ja nicht nach binärer Suche und es werden (maximal) alle Zeilen aller Dateien...
Forum: Algorithmen, Datenstrukturen und Klassendesign
FreePascal
by patti,
11. Mär 2012
Das lässt sich ausnutzen!
Spontan hätte ich es so gemacht:
Speichere für alle Datensätze einen Index, initialisiert mit 0
für alle Werte aus n0:
Setze "alleGleich" auf true
//