排序算法(六):归并排序

2016-12-30  本文已影响0人  fifteenclev
def merge_sort(arr):
    if len(arr) <= 1:
        return arr
    pivot = round(len(arr) / 2)
    left = merge_sort(arr[:pivot])
    right = merge_sort(arr[pivot:])
    return merge(left, right)

def merge(left, right):
    result = []
    i, j = 0, 0
    while i < len(left) and j < len(right):
        if left[i] <= right[j]:
            result.append(left[i])
            i += 1
        else:
            result.append(right[j])
            j += 1
    result += left[i:]
    result += right[j:]
    return result
上一篇 下一篇

猜你喜欢

热点阅读