鱼C论坛

 找回密码
 立即注册
查看: 1957|回复: 0

[技术交流] Python 排序算法:归并排序

[复制链接]
发表于 2020-3-21 13:36:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python 排序算法:归并排序


原理

1.png
2.png
3.png
4.png

代码实现
def mergesort(nums: list) -> list:
    m = len(nums) // 2                                          # 中点
    l, r = nums[:m], nums[m:]
    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鱼币 +1 收起 理由
一个账号 + 1 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 13:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表