Sorting algorithms/Comb sort: Difference between revisions
Content added Content deleted
(added Fortran) |
(→{{header|Perl 6}}: Added Perl 6 solution) |
||
Line 639: | Line 639: | ||
return @arr; |
return @arr; |
||
}</lang> |
}</lang> |
||
=={{header|Perl 6}}== |
|||
{{trans|Perl}} |
|||
<lang perl6>sub comb_sort ( @a is copy ) { |
|||
my $gap = +@a; |
|||
my $swaps = 1; |
|||
while $gap > 1 or $swaps { |
|||
$gap = ( ($gap * 4) div 5 ) || 1 if $gap > 1; |
|||
$swaps = 0; |
|||
for ^(+@a - $gap) -> $i { |
|||
my $j = $i + $gap; |
|||
if @a[$i] > @a[$j] { |
|||
@a[$i, $j] .= reverse; |
|||
$swaps = 1; |
|||
} |
|||
} |
|||
} |
|||
return @a; |
|||
} |
|||
my @weights = (^50).map: { 100 + ( 1000.rand.Int / 10 ) }; |
|||
say @weights.sort.Str eq @weights.&comb_sort.Str ?? 'ok' !! 'not ok'; |
|||
</lang> |
|||
=={{header|PHP}}== |
=={{header|PHP}}== |
||
<lang php>function combSort($arr){ |
<lang php>function combSort($arr){ |