ในบทความที่แล้วเราได้ทำความรู้จักกับการเรียงลำดับอะเรย์แบบ Bubble Sort ไปแล้วนะครับ มาในบทความนี้ผมจะยกตัวอย่างการเรียงลำดับแบบ Selection Sort ให้ผู้อ่านได้ลองศึกษาบ้างนะครับ เราไปเริ่มกันเลยครับ
#!usr/bin/perl
sub SelectionSort {
my ($sortby, @arr) = @_;
$min = 0;
if ($sortby eq "desc") {
for ($i = 0; $i < $#arr; $i++) {
$min = $i;
for ($j = $i+1; $j <= $#arr; $j++) {
$min = $j if ($arr[$j] > $arr[$min]);
}
$temp = $arr[$i];
$arr[$i] = $arr[$min];
$arr[$min] = $temp;
}
} else {
for ($i = 0; $i < $#arr; $i++) {
$min = $i;
for ($j = $i+1; $j <= $#arr; $j++) {
$min = $j if ($arr[$j] < $arr[$min]);
}
$temp = $arr[$i];
$arr[$i] = $arr[$min];
$arr[$min] = $temp;
}
}
return @arr;
}
#!usr/bin/perl
@arr = (2, 3, 1, 5, 10, 7, 20);
@arr = &SelectionSort("asc", @arr);
print @arr;
print "\n";
@arr = &SelectionSort("desc", @arr);
print @arr;
Login
Search