Was ist schneller, Hash Lookup oder Binary Search?

Wenn eine statische Menge von Objekten angegeben wird (statisch in dem Sinne, dass sie nach dem Laden selten oder nie geändert werden), in die wiederholte gleichzeitige Suchen mit optimaler Leistung erforderlich sind, was besser ist, einHashMap oder ein Array mit einer binären Suche unter Verwendung eines benutzerdefinierten Komparators?

Ist die Antwort eine Funktion des Objekt- oder Strukturtyps? Hash- und / oder Equal-Funktionsleistung? Hash-Einzigartigkeit? Listengröße?Hashset size / set size?

Die Größe des von mir betrachteten Sets kann zwischen 500k und 10m liegen - sofern diese Informationen nützlich sind.

Während ich nach einer C # Antwort suche, denke ich, dass die wahre mathematische Antwort nicht in der Sprache liegt, also schließe ich dieses Tag nicht ein. Wenn jedoch C # -spezifische Dinge zu beachten sind, sind diese Informationen erwünscht.

Antworten auf die Frage(32)

Ihre Antwort auf die Frage