from random import shuffle i = 0 def fusion(liste_1,liste_2): global i if len(liste_1) == 0: return liste_2 if len(liste_2) == 0: return liste_1 if liste_1[0] <= liste_2[0]: i+=1 return [liste_1[0]] + fusion(liste_1[1:],liste_2) i+=1 return [liste_2[0]] + fusion(liste_1,liste_2[1:]) def tri_pf(liste): global i if len(liste)<=1: return liste i+=1 millieu = len(liste)//2 return fusion(tri_pf(liste[:millieu]), tri_pf(liste[millieu:])) test = [23,8,20,10,13,1] print(test,i) test = tri_pf(test) print(test, i )