Was ist der schnellste Weg, um Elemente in einem Array zu zählen?
In meinen Modellen besteht eine der am häufigsten ausgeführten Aufgaben darin, die Anzahl der einzelnen Elemente in einem Array zu zählen. Die Zählung ist von einem geschlossenen Satz, also weiß ich, dass es @ giX
Elementtypen und alle oder einige von ihnen füllen das Array zusammen mit Nullen, die "leere" Zellen darstellen. Das Array ist in keiner Weise sortiert und kann relativ lang sein (ungefähr 1 Million Elemente). Diese Aufgabe wird während einer Simulation (die auch Teil von Hunderten von Simulationen ist) Tausende Male ausgeführt. Das Ergebnis sollte ein Vektor seinr
von GrößeX
, sor(k)
ist die Menge vonk
im Array.
ZumX = 9
, wenn ich den folgenden Eingabevektor habe:
v = [0 7 8 3 0 4 4 5 3 4 4 8 3 0 6 8 5 5 0 3]
Ich möchte dieses Ergebnis erhalten:
r = [0 0 4 4 3 1 1 3 0]
Bitte beachten Sie, dass ich nicht die Anzahl der Nullen und die Elemente, die nicht im Array angezeigt werden (wie2
) haben eine0
an der entsprechenden Position des Ergebnisvektors r(2) == 0
).
Was würde das sein schnellste Weg, um dieses Ziel zu erreichen?