- 260 名前:7.31 ID:Gp2d+oGP.net mailto: >>252 Perl5 (効率の良いアルゴリズムではないけれど、まずは…)
use List::Util shuffle; @a = shuffle 1..20; print "shuffled) @a\n"; sub flip { ($m, $n) = @_; @a[0..$m] = reverse @a[0..$m]; @a[0..$n] = reverse @a[0..$n]; } for $i (reverse 1..$#a) { $k = undef; for (0..$i) { $k = $_ if (!defined($k) or $a[$k] < $a[$_]) } flip($k, $i) if $k < $i; } print "sorted ) @a\n"; 実行例 ~ $ perl 13_252_clumsy_pancake_sort.pl shuffled) 18 6 2 13 16 1 12 15 10 4 17 20 9 7 19 14 5 11 3 8 sorted ) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 [] - [ここ壊れてます]
|

|