Sorting algorithms/Gnome sort: Difference between revisions
Content added Content deleted
m (→{{header|BASIC}}: nl works with) |
(→{{header|Python}}: ++ perl) |
||
Line 210: | Line 210: | ||
end; |
end; |
||
end;</lang> |
end;</lang> |
||
=={{header|Perl}}== |
|||
<lang perl>use strict; |
|||
sub gnome_sort |
|||
{ |
|||
my $aref = shift; |
|||
my $size = scalar(@$aref); |
|||
my $i = 1; |
|||
my $j = 2; |
|||
while($i < $size) { |
|||
if ( ${$aref}[$i-1] <= ${$aref}[$i] ) { |
|||
$i = $j; |
|||
$j++; |
|||
} else { |
|||
my $t = ${$aref}[$i-1]; |
|||
${$aref}[$i-1] = ${$aref}[$i]; |
|||
${$aref}[$i] = $t; |
|||
$i--; |
|||
if ($i == 0) { |
|||
$i = $j; |
|||
$j++; |
|||
} |
|||
} |
|||
} |
|||
return $aref; |
|||
}</lang> |
|||
<lang perl>my @arr = ( 10, 9, 8, 5, 2, 1, 1, 0, 50, -2 ); |
|||
print join("\n", @{gnome_sort( \@arr )}); |
|||
exit 0</lang> |
|||
=={{header|Python}}== |
=={{header|Python}}== |