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 @ 2024-02-24 21:08  Junior_bond  阅读(10)  评论(0)    收藏  举报