python--归并排序实现

对于一个想找工作的人来说,归并排序必须能手写出来。

归并排序原理无需解释,直接给出python代码:

def mergesort(num):
    if(len(num)==1):return num
    mid=len(num)//2
    left=mergesort(num[:mid])
    right=mergesort(num[mid:])
    return merge(left,right)

def merge(left,right):
    i,j=0,0
    result=[]
    while i<len(left) and j<len(right):
        if(left[i]<right[j]):
            result.append(left[i])
            i+=1
        else:
            result.append(right[j])
            j+=1
    if(i<len(left)):
        while(i<len(left)):
            result.append(left[i])
            i+=1
    if (j < len(right)):
        while (j < len(right)):
            result.append(right[j])
            j += 1
    return result






pai = [5, 12, 79, 2, 4, 8, 6]
paixu=mergesort(pai)
print(paixu)

猜你喜欢

转载自blog.csdn.net/wenqiwenqi123/article/details/81586131