3-归并排序的实现-python

#归并排序的实现的前奏
def merge(l,low,high,mid):
    i = low
    j = mid+1
    ret = []
    while i<=mid and j<=high:
        if l[i] <l[j]:
            ret.append(l[i])
            i+=1
        else:
            ret.append(l[j])
            j+=1

    while i<=mid:
        ret.append(l[i])
        i+=1
    while j<=high:
        ret.append(l[j])
        j+=1
    l[low:high+1] = ret

#
def merge_sort(l,low,high):
    if low<high:
        mid = (low+high)//2
        merge_sort(l,low,mid)
        merge_sort(l,mid+1,high)
        merge(l,low,high,mid)

l = [2,4,5,7,1,3,6,8]
merge_sort(l,0,7)
print(l)

# 这里的归并排序算法的实现难点是递归

 

posted @ 2021-11-12 20:50  fufu1  阅读(39)  评论(0)    收藏  举报