排序——归并排序 Python3版本

# 合并两个有序数组
def merge(a,b):
    c = []
    i,j = 0,0
    while i < len(a) and j < len(b):
        if a[i] > b[j]:
            c.append(b[j])
            j += 1
        else:
            c.append(a[i])
            i += 1
    if i == len(a):
        c = c + b[j:]
    else:
        c = c + a[i:]
    return c
# 递归拆分数组
def merge_sort(nums):
    if len(nums) <= 1:
        return nums
    mid = len(nums)//2
    left = merge_sort(nums[:mid])
    right = merge_sort(nums[mid:])
    return merge(left,right)

if __name__ == '__main__':
    a = [4,7,8,3,5,9]
    print(merge_sort(a))

猜你喜欢

转载自blog.csdn.net/qq_36309480/article/details/89841581
今日推荐