in reply to Compare two arrays of simple numbers
Sorting is order N-LogN complexity. For very large arrays where you care about efficiency, there should be linear methods where you avoid the sort.
If the numbers in the arrays were multi-digit and there were no repeats in either array, I'd suggest an approach like
(not tested)my %vhash; foreach (@array1){ # Each $vhash{N} says how many time +s N showed up in array1 $vhash{$_}++}; foreach (@array2){ # Each appearance of N in array2 kno +cks down its count in vhash if(! exists $vhash{$_}){ print "Found too many $_ in array2"; exit} elsif($vhash{$_}==1){ delete $vhash{$_)} else{$vhash{$_}--}; if(keys %vhash){ print "Found too many ", join(' ', keys %vhash), "in array1\n"} else{ print "Yep, they matched!\n"}
throop
|
|---|