# https://perl6.online/2019/06/27/105-pancake-sort-in-perl-6/
sub pancake-sort(@data) {
my $n = @data.elems - 1;
while $n > 1 {
# say '1) ', @data;
# say '2) ', @data[0..$n].maxpairs[*-1];
@data[0 .. @data[0..$n].maxpairs[*-1].key] .= reverse;
# say '3) ', @data;
@data[0..$n] .= reverse;
# say '4) ', @data;
$n--;
}
}
sub pancake-sort2(@data) {
{
@data[0 .. @data[0..$_].maxpairs[*-1].key] .= reverse;
@data[0 .. $_] .= reverse;
} for @data.elems - 1 ... 1;
}
my @data = 4, 5, 7, 1, 46, 78, 2, 2, 1, 9, 10;
pancake-sort @data;
say @data;
my @data2 = 4, 5, 7, 1, 46, 78, 2, 2, 1, 9, 10;
pancake-sort2 @data2;
say @data2;