lundi 31 juillet 2017

Algorithme de tri fusion en python




 #Pour trier une liste on peut aussi utiliser L.sort()




def tri_fusion(L):
        if len(L)<=1:
                return(L)
        else:
                m=len(L)//2
        return fusion(tri_fusion(L[0:m]),tri_fusion(L[m:]))

 


def fusion(L_1,L_2):
        L=[]
        k,l=len(L_1),len(L_2)
        i,j=0,0
        while i<k and j<l:
                if L_1[i]<=L_2[j]:
                        L.append(L_1[i])
                        i+=1
                else:
                        L.append(L_2[j])
                        j+=1
        if i==k and j<l:
                L=L+L_2[j:]
        elif j==l and i<k:
                L=L+L_1[i:]
        return L

Aucun commentaire:

Enregistrer un commentaire