两种排序

来源:互联网 发布:战狼2知乎 编辑:程序博客网 时间:2024/05/21 17:46

python写的两种排序的实现

插入排序

def Insert(b,a):    if a[-1]<=b:        return a+[b]    elif a[0]>=b:        return [b]+a    else:        for i in range(len(a)-1):            if a[i]<=b and a[i+1]>=b:                a=a[:i+1]+[b]+a[i+1:]                return adef Sort(a):b=[a[0]]for i in range(1,len(a)):b=Insert(a[i],b)return b

归并排序

def merge(a,b,c):if len(a)==0:c=c+breturn celif len(b)==0:c=c+areturn celse:if a[0]>=b[0]:c.append(b[0])b=b[1:]else:c.append(a[0])a=a[1:]return merge(a,b,c)def Sort(a):if len(a)==1 or len(a)==0:return aelse:p=len(a)//2return merge(Sort(a[:p]),Sort(a[p:]),[])


0 0