Was ist der beste Weg, dies in Ruby zu erreichen? Array1
enthält wenige Zahlen Array2
enthält unsortierte Zahlen. Wir möchten herausfinden, wie oft jedes Element von Array1
in Array2
angezeigt wird.Wie ermittelt man, wie oft ein Element in Array1 in Array2 vorhanden ist?
Beispiel:
Array1 = [0,1,2,3]
Array2 = [0,0,0,3,3,3,2,1,0,3,6,1,3]
Result = {"0"=>4, "1"=>2, "2"=>1, "3"=>5}
Gibt es einen besseren optimalen Weg, dies zu tun, als:
- jedes Element
Array1
- über
Array2
Iterieren Kommissionierung - einen Zähler bei jederjedejedes Elementen Inkrementieren Übereinstimmung
Beispiel zeigt nur einige Zahlen, aber ich möchte herausfinden, wie dies am besten für einen sehr großen Array-Satz funktioniert.
Es scheint mir, wie ähnlichen Algorithmus so die Effizienz der Sortierung an die Sie ist in der Reihenfolge der Sortieralgorithmen erhalten können, die vorhanden sind. http://en.wikipedia.org/wiki/Sorting_algorithm kann "nlogn" sein, wenn Sie das Mergesort-Prinzip verwenden. – uday
@uDaY: Sie können das tatsächlich in 'O (n)' tun. –