Comment detail

与えられた並べ替えを実現するあみだくじの生成 (Nested Flatten)

__END__ 以下に圧縮版置きますた.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
my @current = @ARGV;
my @maze = ();
my $done = 0;
until($done)
{
  my $row = [1..(@ARGV-1)];
  $done = 1;
  for(my $i=0;$i< @current - 1;$i++)
    {
      next if $current[$i] < $current[$i+1];
      $row->[$i]=0;
      @current[$i,$i+1] = @current[$i+1,$i];
      $done = 0;
      $i++;
    }
  @maze = ($row, @maze) unless $done;
}
print join(" ",@current),"\n",
      join("\n",map{"|".join("|",map{$_?' ':'-'}@$_)."|"}@maze),"\n",
      join(" ",@ARGV),"\n";
__END__
@m=@A=@ARGV;@M=();for(;;){@r=(1..(@A-1));$f=1;for($i=0;$i<@A-1;$i++){next if$A[
$i]<$A[$i+1];$f=$r[$i++]=0;@A[$i,$i-1]=@A[$i-1,$i]}last if$f;@M=([@r],@M)}print
join"\n",join(" ",@A),(map"|".join("|",map$_?' ':'-',@$_)."|",@M),join" ",@m

Index

Feed

Other

Link

Pathtraq

loading...