Sorting algorithms/Strand sort: Difference between revisions
m
→{{header|Perl 6}}: fixed merge routine
Thundergnat (talk | contribs) (→{{header|Perl 6}}: Mark as broken) |
SqrtNegInf (talk | contribs) m (→{{header|Perl 6}}: fixed merge routine) |
||
Line 1,072:
=={{header|Perl 6}}==
{{Works with|Rakudo|2018.04.01}}
<lang perl6>sub infix:<M> (@x-in, @y-in) {
reverse gather while @x and @y {
when Less { pop @y }
when Same { pop(@x), pop(@y) }
}▼
}
}
sub strand (@x
my $i = 0;▼
my $prev = -Inf;
▲ my $i = 0;
gather while $i < @x {
▲ }
▲ take $prev = splice(@x, $i, 1)[0];
}
}
Line 1,106 ⟶ 1,101:
my @a = (^100).roll(10);
say "Before {@a
@a = strand_sort(@a);
say "After {@a
@a = <The quick brown fox jumps over the lazy dog>;
say "Before {@a
@a = strand_sort(@a);
say "After {@a
{{out}}
<pre>Before 1 20 64 72 48 75 96 55 42 74
|