in reply to Top and bottom 10 percent elements of an array
This works better for the given elements. It gives the result as you need. Refer splice to know about it.
my @array = (2 ,4, 3, 8, 9, 12, 13, 20, 18, 7 ); my $percent = (scalar @array * 0.20); my (@resultA, @resultB); my @ordered = sort {$a <=> $b} @array; @resultB = splice(@ordered, 0, $percent); @resultA = splice(@ordered, (scalar @ordered - $percent)); print "@array", "\n"; for (my $i=0; $i < scalar @array; $i++) { if ( grep { $array[$i] eq $_ } @resultA ) { $array[$i] = 'A'; } elsif ( grep { $array[$i] eq $_ } @resultB ) { $array[$i] = 'B'; } else { $array[$i] = '-'; } } print "@array", "\n";
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Top and bottom 10 percent elements of an array
by sesemin (Beadle) on Apr 29, 2010 at 05:31 UTC |