http://qs321.pair.com?node_id=343134

in reply to largest number inside array/hash

Hi Anonymous Monk.

In an attempt to display the 'syntactically rich' nature of the perl language, I have taken the liberty of including yet another array oriented solution:
```#!/usr/bin/perl -w
use strict;

my @array = ( 33, 56, 3, 2, 67, 101, 218, 4, 17 );
my @nums = sort { \$a <=> \$b } @array;

print "The largest number is: \$nums[\$#nums]\n";
[download]```

Output:
```C:\>perl pg8.pl
The largest number is: 218
[download]```

C:\>

Hope this helps,
-Katie

Replies are listed 'Best First'.
Re: Re: largest number inside array/hash
by TomDLux (Vicar) on Apr 07, 2004 at 07:35 UTC

Think back to second year of college, when you took that Algorithms course.

A good sort such as quick sort is O( N logN ), poor ones such as bubble sort are O( N^2 ). A max() function requires a single pass through the list, and so is O( N ). It would be silly to do N log N - N ( i.e. N (log N - 1) ) operations more than you need to.

--
TTTATCGGTCGTTATATAGATGTTTGCA

In practice, on small data sets, the penalty is a factor of 10 or so. Which is similar to the penalty from using Perl. If you can get a good constant, the log(n) might be paid for. (Real example. Wavelet algorithms tend to be O(n) while the FFT is O(n*log(n)). But the FFT has a better constant.) At some point worrying about how the computer spends a millisecond of time itself becomes silly.

Me, I tend to treat logarithmic factors as noise unless I'm trying to squeeze performance. The difference between linear and quadratic I care about. O(n) vs O(n*log(n)) I don't. I know them, I just don't care much.

Re^2: largest number inside array/hash
by Anonymous Monk on Aug 17, 2012 at 17:09 UTC
Hi Nice elegant solution. but i guess this would work too
```#!/usr/bin/perl -w

use strict;

my @array = ( 33, 56, 3, 2, 67, 101, 218, 4, 17 );

my @nums = sort { \$b <=> \$a } @array;

print "The largest number is: \$nums\n";
[download]```