def tri_fusion(liste):
if len(liste) <= 1:
return liste
milieu = len(liste) // 2
gauche = tri_fusion(liste[:milieu])
droite = tri_fusion(liste[milieu:])
return fusion(gauche, droite)
def fusion(gauche, droite):
resultat = []
i = 0
j = 0
while i < len(gauche) and j < len(droite):
if gauche[i] < droite[j]:
resultat.append(gauche[i])
i += 1
else:
resultat.append(droite[j])
j += 1
resultat.extend(gauche[i:])
resultat.extend(droite[j:])
return resultat
# Exemple d'utilisation
liste = [38, 27, 43, 3, 9, 82, 10]
liste_triee = tri_fusion(liste)
print("Liste triƩe :", liste_triee)