"""
=====
归并排序
=====
排序算法

排序演示网站"""

log = print


def merge(left,right):
    result = []
    while left and right:
        if left[0] <= right[0]:
            result.append(left.pop(0))
        else:
            result.append(right.pop(0))
    while left:
        result.append(left.pop(0))
    while right:
        result.append(right.pop(0))
    return result

def merge_sort(number_list):
    import math
    if len(number_list) <= 2:
        return number_list
    middle = math.floor(len(number_list)/2)
    left, right = number_list[0:middle], number_list[middle:]
    return merge(merge_sort(left), merge_sort(right))
if __name__ == '__main__':
    numbers = [29,10,14,13]
    # numbers = list(map(int, input().split(',')))
    log(merge_sort(numbers))

自己写的归并排序 为什么是[14, 13, 29, 10]

1 条评论

  • 1