Perl 빗질정렬 구현

1 개요[ | ]

Perl 빗질정렬 구현
펄 빗질정렬 구현
sub comb_sort {
    my $a=shift;
    $gap=$size=@$a;
    $swapped=1;
    while ($gap ne 1 || $swapped) {
        $gap = int(($gap*10)/13);
        $gap=1 if ($gap<1);
        $swapped=0;
        for $i (0..$size-$gap-1) {
            if (@$a[$i]>@$a[$i+$gap]) {
                (@$a[$i],@$a[$i+$gap]) = (@$a[$i+$gap],@$a[$i]);
                $swapped=1;
            }
        }
    }
}
@arr = (9,1,22,4,0,-1,1,22,100,10);
comb_sort(\@arr);
print join(',',@arr);
# -1,0,1,1,4,9,10,22,22,100
@arr = (9,1,22,4,0,-1,1,22,100,10);
$gap=$size=@arr;
$swapped=1;
while ($gap ne 1 || $swapped) {
    $gap = int(($gap*10)/13);
    $gap = 1 if ($gap<1);
    $swapped = 0;
    for $i (0..$size-$gap-1) {
        if ($arr[$i]>$arr[$i+$gap]) {
            ($arr[$i], $arr[$i+$gap]) = ($arr[$i+$gap], $arr[$i]);
            $swapped=1;
        }
    }
}
print join(',',@arr);
# -1,0,1,1,4,9,10,22,22,100

2 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}