43 lines
1.0 KiB
Python
43 lines
1.0 KiB
Python
def fusion(t1,t2):
|
|
"""Fusionne deux tableau trié en un seul.
|
|
param t1 (tab) : premier tableau trié
|
|
param t2 (tab) : second tableau trié
|
|
return (tab) : fusion des deux tableaux"""
|
|
global compteur
|
|
tab_final = []
|
|
ind1 = 0
|
|
ind2 = 0
|
|
while ind1<len(t1) and ind2<len(t2):
|
|
if t1[ind1] < t2[ind2] :
|
|
tab_final.append(t1[ind1])
|
|
ind1+=1
|
|
else:
|
|
tab_final.append(t2[ind2])
|
|
ind2+=1
|
|
while ind1<len(t1) :
|
|
tab_final.append(t1[ind1])
|
|
ind1+=1
|
|
while ind2<len(t2) :
|
|
tab_final.append(t2[ind2])
|
|
ind2+=1
|
|
return tab_final
|
|
|
|
def tri_fusion(t):
|
|
long = len(t)
|
|
if long <= 1 :
|
|
return t
|
|
else :
|
|
t1 = []
|
|
t2 = []
|
|
i = 0
|
|
moitie = long//2
|
|
while i < moitie :
|
|
t1.append(t[i])
|
|
t2.append(t[i+moitie])
|
|
i+=1
|
|
if (i+moitie)<(long):
|
|
t2.append(t[i+moitie])
|
|
t1 = tri_fusion(t1)
|
|
t2 = tri_fusion(t2)
|
|
return fusion(t1,t2)
|