Sorting algorithms/Insertion sort: Difference between revisions

Content added Content deleted
m (add link to Delphi for pascal)
(→‎{{header|Perl}}: perlcritic(isms): DON't (ab)use unpack @_ assignment to also create local vars! constrain var scope; use return keyword)
Line 1,157: Line 1,157:
<lang perl>
<lang perl>
sub insertion_sort {
sub insertion_sort {
my (@a, $i, $j, $k) = @_;
my (@list) = @_;
for $i (1 .. $#a) {
foreach my $i (1 .. $#list) {
$k = $a[$i];
my $j = $i;
for ($j = $i; $j > 0 && $k < $a[$j - 1]; $j--) {
my $k = $list[$i];
$a[$j] = $a[$j - 1];
while ( $j > 0 && $k < $list[$j - 1]) {
$list[$j] = $list[$j - 1];
$j--;
}
}
$a[$j] = $k;
$list[$j] = $k;
}
}
@a;
return @list;
}
}


my @a = (4, 65, 2, -31, 0, 99, 83, 782, 1);
my @a = insertion_sort(4, 65, 2, -31, 0, 99, 83, 782, 1);
@a = insertion_sort @a;
print "@a\n";
print "@a\n";
</lang>
</lang>