summaryrefslogtreecommitdiff
path: root/progs/a434.py
blob: 6cb40818afd1276dff43106aa88738342ec8a712 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def comb_sort(nums):
    shrink_fact = 1.3
    gaps = len(nums)
    swapped = True
    i = 0
    while gaps > 1 or swapped:
        gaps = int(float(gaps) / shrink_fact)
        swapped = False
        i = 0
        while gaps + i < len(nums):
            if nums[i] > nums[i+gaps]:
                nums[i], nums[i+gaps] = nums[i+gaps], nums[i]
                swapped = True
            i += 1
    return nums