turugina #6704(2008/07/08 01:50 GMT) [ Perl ] Rating0/0=0.00
perlが無かったので。 アルゴリズムはバケツソートです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
use strict; sub bucket_sort { my ($min, $max, $num, @data) = @_; my @bucket; eval { for ( map { [$_ - $min,$_] } @data) { $bucket[$_->[0]] = [] if !$bucket[$_->[0]]; push @{$bucket[$_->[0]]}, $_->[1]; } }; if ( $@ ) { bucket_sort($min-1,$max,$num,@data); } else { map { @$_ } grep { $_ } @bucket; } } $,=', '; $\="\n"; print bucket_sort(qw/-1 10 10 -1 9 4 8 9 6 3 9 5 2/); print bucket_sort(qw/1 10 10 -1 9 4 8 9 6 3 9 5 2/);
Rating0/0=0.00-0+
[ reply ]
turugina
#6704()
[
Perl
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]