On Sat, 31 Aug 2002, Sudarshan Raghavan wrote:

> For further proof here is a benchmarking result
> #!/usr/local/bin/perl -w
> use strict;
> use Benchmark;
> 
> my @arr = qw(34 12 23 45 11 91 32);
> sub using_sort {
>       my $min = (sort {$a <=> $b} @arr)[0];
>       my $max = (reverse sort {$a <=> $b} @arr)[0];

My bad!! this should be
        my ($min, $max) = (sort {$a <=> $b} @arr)[0, -1];

> }
> 
> sub using_for {
>         my ($min, $max);
>         $min = $max = $arr[0];
>         for (1..@arr-1) {
>               $min = $arr[$_] if $arr[$_] < $min;
>               $max = $arr[$_] if $arr[$_] > $max;
>       }
> }
> 
> timethese (1000000, { using_sort => \&using_sort,
> using_for => \&using_for });

With these changes the benchmarking gets even better
Benchmark: timing 1000000 iterations of using_for, using_sort...
 using_for: 14 wallclock secs (11.89 usr +  0.06 sys = 11.95 CPU) @ 
83682.01/s (n=1000000)
using_sort:  4 wallclock secs ( 4.13 usr +  0.02 sys =  4.15 CPU) @ 
240963.86/s (n=1000000)
 


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to