빗질정렬 구현

Ykhwong (토론 | 기여)님의 2018년 8월 28일 (화) 09:30 판

1 Perl

@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) {
                if ($arr[$i]>$arr[$i+$gap]) {
                        ($arr[$i], $arr[$i+$gap]) = ($arr[$i+$gap], $arr[$i]);
                        $swapped=1;
                }
        }
}
print join(',', grep /\S/, @arr);
#-1,0,1,1,4,9,10,22,22,100

2 Python

def comb_sort(a):
    gap=size=len(a)
    swapped = True
    while gap !=1 or swapped:
        gap = (gap*10)//13
        if gap<1: gap=1
        swapped = False
        for i in range(0, size-gap):
            if a[i]>a[i+gap]:
                a[i],a[i+gap] = a[i+gap],a[i]
                swapped = True
arr = [9,1,22,4,0,-1,1,22,100,10]
comb_sort(arr)
print( arr )
# [-1, 0, 1, 1, 4, 9, 10, 22, 22, 100]

3 같이 보기

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