1unitedpower: Planung, Suchfunktion

Beitrag lesen

dass man am Ende des Tages ungeschunden und mit dem Schatz nach Hause gehen kann.

Naja. Gerade in Hinblick auf "Suchfunktionen" ist es von Vorteil sein, sich von vorn herein über die beabsichtigten Funktionen im Klaren zu sein und die, ich nenn's mal "Datenhaltung", daran anzupassen. Das betrifft auch den Aufbau der Arrays.

Im Vorfeld muss nur geklärt sein, was da berechnet werden soll, nicht aber das wie. Für das wie sollte man erstmal die verständlichste Variante implementieren. Stellt sich beim Profiling heraus, dass die Suche unverhältnismäßig langsam ist, dann kann man die Implementierung immernoch anpassen.

Vorliegend dürfte(!) der Aufwand nämlich ziemlich obsolet sein.

Das geht in die selbe Richtung, wie die von Rolf B vorgeschlagene Lösung. Aber da ist erstmal nichts gewonnen. Du brauchst O(n) um die Hashmap zu erstellen und nochmal O(1) für den Lookup (im worst case sogar nochmal O(n)), das ist nicht effizienter als eine lineare Suche über eine Liste. Der Vorteil der Hashmap macht sich erst bemerkbar, wenn man mehrere Lookups macht, was im vorliegenden Fall nicht gegeben zu sein scheint. Von daher ist das ein gutes Beispiel für vergebene Liebesmühe. Und selbst wenn man hier von der Effizienz der Hashmap profitieren würde, könnte es immernoch sein, dass der eigentliche Flaschenhals an einer ganz anderen Stelle liegt. Falls das doch der Flaschenhals sein sollte, wird ein Profling das zu Tage fördern und dann kann man das immernoch optimieren.