Comment detail

比較しないソートの作成 (Nested Flatten)
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/);

Index

Feed

Other

Link

Pathtraq

loading...