Quick actions

cmd+k|ctrl+k

Navigation

Languages

Pancake sort

Snippet info

Language

Raku

Visibility

public

Author

kaspik99

Created

2019-06-27T07:44:26Z

Updated

2019-06-27T07:47:09Z


# 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;
INFO