Sorting algorithms/Bubble sort: Difference between revisions

Content added Content deleted
(→‎[[Perl]]: syntax highlight)
Line 185: Line 185:
'''Interpreter:''' perl 5.8.8
'''Interpreter:''' perl 5.8.8


<highlightSyntax language=perl>
# Sorts an array in place and returns a copy
# Sorts an array in place and returns a copy
sub bubble_sort (@) {
sub bubble_sort (@) {
my $len = @_ - 1;
for my $i (0..$len-1){
my $len = @_ - 1;
for my $j ($i+1..$len){
for my $i (0 .. $len - 1){
@_[$i,$j] = @_[$j,$i] if $_[$j] lt $_[$i];
for my $j ($i + 1 .. $len){
}
if ($_[$j] lt $_[$i]) {
@_[$i, $j] = @_[$j, $i];
}
return @_;
}
}
}
}

return @_;
# Usage
}
@a = qw/G F C A B E D/;
</highlightSyntax>
bubble_sort(@a);


<highlightSyntax language=perl>
# usage
@a = qw/G F C A B E D/;
bubble_sort(@a);
</highlightSyntax>


Alternate "Long Hand" Perl Method
Alternate "Long Hand" Perl Method


<highlightSyntax language=perl>
sub Bubble_Sort {
sub Bubble_Sort {
my @list = @_;
my $temp = 0;
my @list = @_;
my $done = 0;
my $temp = 0;
my $elements = $#list + 1;
my $done = 0;
my $elements = $#list + 1;

while ($done == 0) {
$done = 1;
while ($done == 0) {
for (my $i=0;$i<$elements;$i++) {
$done = 1;
if ($list[$i] > $list[$i+1] && ($i + 1) < $elements) {
for (my $i = 0; $i < $elements; $i++) {
$done = 0;
if ($list[$i] > $list[$i + 1] && ($i + 1) < $elements) {
$temp = $list[$i];
$done = 0;
$list[$i] = $list[$i+1];
$temp = $list[$i];
$list[$i+1] = $temp;
$list[$i] = $list[$i + 1];
$list[$i + 1] = $temp;
}
}
}
}
}
}
return @list;
return @list;
}
}
</highlightSyntax>


<highlightSyntax language=perl>
#usage
# usage
my @test = (1, 3, 256, 0, 3, 4, -1);
my @test = (1, 3, 256, 0, 3, 4, -1);
print join(",",Bubble_Sort(@test));
print join(",", Bubble_Sort(@test));
</highlightSyntax>


==[[Python]]==
==[[Python]]==