归并排序python实现代码

2022-03-11 00:00:00 代码 排序 归并

归并排序python实现代码,代码用到了递归

"""
作者:皮蛋编程(https://www.pidancode.com)
创建日期:2022/3/21
功能描述:归并排序python实现代码
"""

def mergesort(arr):
    if len(arr) == 1:
        return arr
    m = int(len(arr) / 2)
    l = mergesort(arr[:m])
    r = mergesort(arr[m:])
    if not len(l) or not len(r):
        return l or r
    result = []
    i = j = 0
    while len(result) < len(r) + len(l):
        if l[i] < r[j]:
            result.append(l[i])
            i += 1
        else:
            result.append(r[j])
            j += 1
        if i == len(l) or j == len(r):
            result.extend(l[i:] or r[j:])
            break
    return result


print(mergesort([12, 33, 45, 65, 43, 32, 12, 9, 987, 54, 97, 568]))

输出结果:
[9, 12, 12, 32, 33, 43, 45, 54, 65, 97, 568, 987]

以上代码在python3.9环境测试通过

相关文章