zltzlt 发表于 2020-3-21 13:36:58

Python 排序算法:归并排序

Python 排序算法:归并排序

原理






代码实现

def mergesort(nums: list) -> list:
    m = len(nums) // 2                                          # 中点
    l, r = nums[:m], nums
    if len(l) > 1:
      l = mergesort(l)
    if len(r) > 1:
      r = mergesort(r)
    res = []
    while l and r:                                              # 如果 l 或 r 都不为空
      res.append(l.pop() if l[-1] >= r[-1] else r.pop())      # 添加更大的元素
    res.reverse()                                             # 翻转
    return (l or r) + res                                       # 加上剩余的列表
页: [1]
查看完整版本: Python 排序算法:归并排序