mirror of
https://github.com/Fare-spec/cours.git
synced 2025-12-08 03:00:37 +00:00
quick
This commit is contained in:
@@ -1,18 +1,28 @@
|
|||||||
|
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 fusion_rec(a, b):
|
def tri_pf(liste):
|
||||||
if len(a) == 0:
|
global i
|
||||||
return b
|
if len(liste)<=1:
|
||||||
if len(b) == 0:
|
|
||||||
return a
|
|
||||||
if a[0] <= b[0]:
|
|
||||||
return [a[0]] + fusion_rec(a[1:], b)
|
|
||||||
return [b[0]] + fusion_rec(a, b[1:])
|
|
||||||
|
|
||||||
def tri(liste):
|
|
||||||
if len(liste) <= 1:
|
|
||||||
return liste
|
return liste
|
||||||
liste1 = liste[:len(liste) // 2]
|
i+=1
|
||||||
liste2 = liste[len(liste) // 2:]
|
millieu = len(liste)//2
|
||||||
liste1 = tri(liste1)
|
return fusion(tri_pf(liste[:millieu]), tri_pf(liste[millieu:]))
|
||||||
liste2 = tri(liste2)
|
|
||||||
return fusion(liste1, liste2)
|
|
||||||
|
|
||||||
|
test = [23,8,20,10,13,1]
|
||||||
|
print(test,i)
|
||||||
|
test = tri_pf(test)
|
||||||
|
print(test, i )
|
||||||
|
|||||||
Reference in New Issue
Block a user