Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re^2: Calculating statistical median

by jimbojones (Friar)
on Jul 13, 2005 at 15:35 UTC ( #474589=note: print w/replies, xml ) Need Help??

in reply to Re: Calculating statistical median
in thread Calculating statistical median


Is there a special reason for the array reference? Versus this?
sub mean { my $result; foreach (@_) { $result += $_ } return $result / @_; } my @points = qw(1 2 3 4); print mean @points;

Replies are listed 'Best First'.
Re^3: Calculating statistical median
by dirac (Beadle) on Jul 14, 2005 at 07:07 UTC
    Copying an array or hash into @_ takes time. Passing arrays and hashes by reference is straightforward.
    See Benchmark
    If you want median:
    sub median { $_[0]->[ @{$_[0]} / 2 ] } my @points = 0..100; print median(\@points), "\n";

      It should sort the array before calculating median this way. Besides that it does not handle the array with even elements correctly.

      This calculates median only if @points is already truly ordered.
      This sample has a bug: if input array is not sorted, the result is incorrect.
      $ cat sub median { $_[0]->[ @{$_[0]} / 2 ] } my @sample=(9, 1, 2, 3, 4, 8, 7, 6, 5); my @sorted; @sorted=sort @sample; print median(\@sample),"\n"; print median(\@sorted),"\n"; $ perl 4 5 $
      Should be
      5 5

      Thanks. Didn't know about the speed issue.

      - j

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://474589]
and the monastery is silent...

How do I use this? | Other CB clients
Other Users?
Others browsing the Monastery: (5)
As of 2018-05-21 17:11 GMT
Find Nodes?
    Voting Booth?