Ich arbeite in einer LAMP-Umgebung, so ist PHP die Sprache; Zumindest kann ich Python benutzen.Ich habe zwei ungeordnete Integer-Arrays, und ich muss wissen, wie viele ganze Zahlen diese Arrays gemeinsam haben
Wie der Titel sagte, habe ich zwei ungeordnete Integer-Arrays.
$array_A = array(13, 4, 59, 38, 9, 69, 72, 93, 1, 3, 5)
$array_B = array(29, 72, 21, 3, 6)
Ich möchte wissen, wie viele Integer diese Array gemeinsam haben; Im Beispiel sehen Sie, dass das Ergebnis 2 ist. Ich bin nicht daran interessiert, was ganze Zahlen gemeinsam haben, wie (72, 3).
Ich brauche eine schnellere Methode als jedes Element des Arrays B zu nehmen und prüfen, ob es in ist Array A (O (n · m))
Arrays durch asort sortiert werden können oder mit SQL-Ordnung (sie aus einem SQL-Ergebnis kam).
Eine Idee, die zu mir kam, ist ein ‚Vektor‘ für jedes Array zu erstellen, wobei die ganze Zahl eine Position, die Wert vorhanden bekommt 1 und ganzen Zahlen nicht 0
erhalten A Also, für Array (bei StartNr 1)
(1, 0, 1, 1, 1, 0, 0, 0, 1, 0, ...)
Das Gleiche gilt für Array B
(0, 0, 1, 0, 0, 1, ...)
und vergleichen diese zwei Vektoren mit einem Zyklus. Das Problem ist, dass auf diese Weise die Vektorlänge ungefähr 400k beträgt.
Wenn beide Listen aus der gleichen Datenbank kommen und die Felder werden indiziert, warum nicht eine (vollständige äußere) JOIN verwenden? – VolkerK