2010-12-14 10 views
1

Ich frage mich, wenn jemand Sie bittet, ein algorithmisches Problem zu lösen, ist es ein guter Weg, tatsächlich mit Hastable, Hashset oder HashMap zu starten. Normalerweise habe ich Leute gehört, die sagten, dass du Hashes nicht als deine erste Antwort finden solltest.Effiziente Art des Schreibens Algorithmus

Wie sollen wir gehen über in Algorithmen: In-Ort sollte Bedeutung gegeben werden oder sicher Zeit Komplexität machen ist beste

Ich bin nicht zu verallgemeinern versucht, aber immer noch würden einige Vorschläge hilfreich sein.

Danke

+0

Ja, Sie möchten bei der Berechnung eines Faktors definitiv keine Hashtables verwenden. :) – terminus

Antwort

3

Das Beste, auf das Sie hoffen können, ist eine verallgemeinerte Antwort auf Ihre allgemeine Frage.

Kommt drauf an.

Der Grund, warum es viele verschiedene Algorithmen gibt, ist, weil es nicht immer einen Algorithmus gibt, der der beste ist. Und viele Algorithmen zielen darauf ab, verschiedene Probleme voneinander zu lösen. Bei einigen Algorithmen macht es keinen Sinn, über Hashtabellen zu reden.

Wenn mich jemand bittet, ein algorithmisches Problem zu lösen, werde ich wahrscheinlich versuchen, etwas zu verwenden, das in die Sprache eingebaut ist, die ich benutze, bevor ich meinen eigenen Algorithmus entwerfe. Der Grund ist, weil ich meine Zeit schätze. Wenn ich später finde, dass der Code nicht effizient genug ist, dann kann ich nach einem besseren Weg suchen, es zu tun.

1

Ich denke, es ist wirklich situational. Wenn der Direktzugriff eine Priorität ist und Sie einen schnellen Zugriff und wenig Einschränkungen bei der Speichernutzung und keinen sequentiellen Zugriff benötigen, ist Hashtable (et al.) Die richtige Wahl.

Verwandte Themen