Ben bir lamba bir ortamda çalışıyorum, bu yüzden PHP dilidir; en azından ben pitonu kullanabilirsiniz.
Başlığı dedi i gibi iki sırasız tamsayı diziler var.
$array_A = array(13, 4, 59, 38, 9, 69, 72, 93, 1, 3, 5)
$array_B = array(29, 72, 21, 3, 6)
Ben bu dizi ortak kaç tamsayılar bilmek istiyorum; Eğer sonuç 2 görmek gibi. örnekte I (72, 3) gibi, ortak ne tamsayılar ilgilenmiyorum.
Ben dizi B her eleman almak ve dizi A'da olmadığını kontrol daha hızlı bir yöntem gerekir (O (nxm))
Diziler (onlar bir sql sonucunda geldi) asort aracılığıyla veya sql sipariş ile sıralanabilir.
Bana geldi bir fikir tamsayı değeri 1 olur ve tamsayılar 0 olsun mevcut bir pozisyon her dizi için bir 'vektör' oluşturmaktır.
Yani, dizi A (pos 1 başlayarak)
(1, 0, 1, 1, 1, 0, 0, 0, 1, 0, ...)
Dizi B için aynı
(0, 0, 1, 0, 0, 1, ...)
Sonra bir devir ile iki vektör karşılaştırın. Sorun, bu şekilde vektör uzunluğu yaklaşık 400k olmasıdır.