Shell sorting

admin 2019-08-10 20:05:21 0 0 Algorithm 213 复制链接

import random


def shell_sort(arr):
    print('arr_unsorted: ', arr)
    gap = len(arr) // 2
    while gap > 0:
        for i in range(gap, len(arr)):
            j = i
            while j > 0:
                if arr[j] < arr[j - gap]:
                    arr[j], arr[j - gap] = arr[j - gap], arr[j]
                    j -= gap
                else:
                    break
        gap //= 2
    return arr


if __name__ == "__main__":
    arr = [random.randint(1, 100) for _ in range(30)]
    print('arr_sorted: ', shell_sort(arr))


Output:

D:\_Desk\python_review>D:/_111/python.exe d:/_Desk/python_review/14-shell_sorting.py
arr_unsorted:  [73, 85, 87, 95, 76, 46, 83, 32, 83, 81, 60, 34, 55, 68, 69, 48, 19, 48, 55, 53, 76, 20, 58, 73, 71, 29, 44, 41, 99, 75]     
arr_sorted:  [19, 20, 29, 32, 34, 41, 44, 46, 48, 48, 53, 55, 55, 58, 60, 68, 69, 71, 73, 73, 75, 76, 76, 81, 83, 83, 85, 87, 95, 99]



评论(0)

    还没有评论,快来抢沙发吧!