Felder auf Gleichheit überprüfen
-
Ich bin jetzt verwirrt... Es ist also doch am schnellsten mit std::sort (wenn man std::sort, std::map und std::unordered_map betrachtet)?
P.S.: @hustbaer In Deinem Post fehlt glaub noch oben (aber ist ja nicht so wichtig...)
std::sort[100]
integer_sort is a fast templated in-place hybrid radix/comparison algorithm
-
@HarteWare sagte in Felder auf Gleichheit überprüfen:
Ich bin jetzt verwirrt... Es ist also doch am schnellsten mit std::sort (wenn man std::sort, std::map und std::unordered_map betrachtet)?
Für Vektoren bis etwa 68 Millionen ()
int
s definitiv ja. Weiter nicht getestet, da dieunordered_map
dafür schon etwa 2 Minuten brauchte (vs. 10 Sekunden mitstd::sort
).Zumindest in der Theorie sollten die sich aber irgendwann treffen bei () für irgendein konstantes . Wenn ich raten müsste, würde ich das irgendwo in der Größenordnung von 300 verorten ().
Sollte das tatsächlich stimmen, braucht man viel Zeit, eine Menge RAM und ne neue CPU-Architektur die den adressieren kann.
... kann aber auch sein, dass ich grad halbgaren Bullshit phantasiere
-
Es ist also doch am schnellsten mit std::sort (wenn man std::sort, std::map und std::unordered_map betrachtet)?
Korrekt.
In Deinem Post fehlt glaub noch oben (aber ist ja nicht so wichtig...)
std::sort[100]
Ebenso korrekt. Ich hab' beim Kopieren wohl nicht weit genug hinaufgescrollt und zu wenig kopiert. Es fehlen auch noch alle 4 Einträge mit [10]. Aber ja, sollte reichlich egal sein, denn auch da schlagen beide Sorts beide Maps.