Poszukuję informacji o tym, jak działa funkcja Perla grep
. Robię to:Czy sortowanie pomaga w wydajności grep w Perl
if (grep{ $foo == $_ } @bar) {
some code;
}
Załóżmy @bar
jest duża (setki tysięcy elementów). Z moimi danymi, jeśli sortuję @bar
, wartości $foo
są bardziej prawdopodobne w pobliżu początku tablicy niż przy końcu. Zastanawiam się, czy to pomoże w osiągach.
Innymi słowy, z powyższym kodem, grep
przesuwa się sekwencyjnie przez @bar
sprawdzając, czy $foo == $_
, a następnie natychmiast kończy działanie, gdy jakakolwiek wartość zostanie uznana za prawdziwą? A może faktycznie sprawdziłby każdy element @bar
przed zwróceniem wartości?
dobre pytanie.Myślę, że nie używaj 'grep', ale' for() 'do twojego wcześniejszego wyjścia – gaussblurinc
I zobacz mój komentarz poniżej. 'List :: MoreUtils' na CPAN może robić, co chcesz, jeśli dobrze rozumiem twoje zadanie – gaussblurinc
@loldop Powinieneś umieścić to jako odpowiedź. Wygląda na to, że 'firstidx' zrobi to, co chcę. – itzy