Python数据结构与算法05——归并排序

归并排序:

复制代码
def merge_sort(aimlist):
    #归并排序 拆分-排序-合并 也就是merge_返回的是是一个已经排好序的列表
    n=len(aimlist)
    if n<=1:
        return aimlist
    mid=n//2
    aimlist_left=merge_sort(aimlist[:mid])
    aimlist_right=merge_sort(aimlist[mid:])
    lp,rp=0,0
    result=[]
    while lp<len(aimlist_left) and rp<len(aimlist_right):
        if aimlist_left[lp]<=aimlist_right[rp]:
            result.append(aimlist_left[lp])
            lp+=1
        else:
            result.append(aimlist_right[rp])
            rp+=1

    result.extend(aimlist_right[rp:])
    result.extend(aimlist_left[lp:])
    return result

li=[23,56,34,12,67,90]
print(merge_sort(li))
复制代码

 

posted @   Junior_bond  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示