Files
cours/partition_fusion/code2.py
2024-12-18 08:16:07 +01:00

29 lines
599 B
Python

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 )