Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: Answer: How can I find the index of the biggest element in an array?

by dcmertens (Beadle)
on Jan 16, 2014 at 02:19 UTC ( #1070750=note: print w/ replies, xml ) Need Help??

I disagree. This is kinda clever, but I suspect that a single pass would be clearer. I would do this:

my @array = qw(4 3 7 8 9 49 12 23 43); my ($largest, $largest_idx) = ($array1[0], 0); for my $i (1 .. $#array) { ($largest, $largest_idx) = ($array[$i], $i) if $largest < $array[$i]; } print "Largest number is $largest, at offset $largest_idx\n";
It really seems like something like this should be available in List::Util or List::MoreUtils, and I would use one of those instead of the sort+smartmatch. At any rate, I am most likely to need this sort of calculation in PDL, where I would do it like this:
use PDL; my $data = pdl(qw(4 3 7 8 9 49 12 23 43)); my $largest_idx = $data->maximum_ind; my $largest = $data->at($max_idx); print "Largest number is $largest, at offset $largest_idx\n";
but PDL would be overkill for a dataset of this size.


Comment on Re: Answer: How can I find the index of the biggest element in an array?
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1070750]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (14)
As of 2014-09-30 14:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (373 votes), past polls