python的归并排序(mergesort)实现

def merge(left, right):
    res = []
    while left and right:
        if left[0] < right[0]:
            res.append(left.pop(0))
        else:
            res.append(right.pop(0))
    res = res + left + right#数组相加实际上降低了效率,可以指出这点表现对底层原理的认识
    return res

def mergesort(lists):
    if len(lists) <= 1:
        return lists
    mid = len(lists)//2
    left = mergesort(lists[:mid])
    right = mergesort(lists[mid:])
    return merge(left,right)

猜你喜欢

转载自blog.csdn.net/m0_37422289/article/details/79301408