21698
12698
1 2 86 9
1 2 9 86
1 2 86
4
4
4
4
1 2 8 46 9
9 4
i= 1
12684
12684
1 2 46 8
1 2 8 46
1 2 46
9
9
9
9
8 9
i= 2
12648
12648
1 2 8
1 2 6 84
9
9
9
9
6 4
i= 3
12468
12468
1 2 8
9
9
94 6
i= 4
12468
12468
9
9
i= 5
def est_trie(T):
N = len(T)
res = True
i=0
while res and i < N-1:
res = (T[i] <= T[i+1])
i += 1
return res
def tri_bulles(T):
N = len(T)
for iin range(N-1,0,-1):
for jin range(0,i):
if T[j] > T[j+1]:
T[j],T[j+1] = T[j+1],T[j]
import numpy.random as rd
res = True
for nin range(1000):
T = list(rd.randint(1000,size=100))
tri(T)
if not est_trie(T):
res = False
break
if res:
print("La fonction de tri pourrait etre correcte.")
else:
print("La fonction de tri n’est pas correcte.")
6 9 82 1 4
i= 1
2 9 86 41
i= 2
62 89 41
i= 3
62 89 41
i= 4
82 461 9
i= 5
64 91 82
def tri_insertion(T):
N = len(T)
for iin range(1,N):
x = T[i]
j=i
while j>0and T[j-1] > x:
T[j-1] = T[j]
j -= 1
T[j] = x
def partitionnement(T):
N = len(T)
pivot = T[-1]
Tinf = []
Tsup = []
for iin range(N-1):
if T[i] < pivot:
Tinf.append(T[i])
else:
Tsup.append(T[i])
return (Tinf,Tsup)
def tri_rapide(T):
N = len(T)
if N > 1:
pivot = T[-1]
(Tinf,Tsup) = partitionnement(T)
Ttrie = tri_rapide(Tinf)+[pivot]+tri_rapide(Tsup)
return Ttrie
else:
return T
6 9 42 1
i,j
8
i= 0
6 9 42 81
i,j
i= 1
9 42 81 6
i,j
i= 2
42 81 6
j
9
i
i= 3
42 1 6
j
9 8
i
i= 4
42 1 6
j
9 8
62 1 4
j
9 8
debut = 0 fin = 5
i j
8 6
46 9 82 1
49821
4 9 82 1 4 91 2
4 9 81 2 4 6 91 2
part(T,0,5)
tri_rapide(T,0,1) tri_rapide(T,3,5)
part(T,0,1) part(T,3,5)
1
1
1
2
1
3
1
4
1
5
6
6
6 8
partitionnement_en_place
def partitionnement_en_place(T, debut, fin):
j = debut
for iin range(debut,fin):
if T[i] <= T[fin]:
T[j],T[i] = T[i],T[j]
j += 1
T[j],T[fin] = T[fin],T[j]
return j
def tri_rapide_en_place(T,debut,fin):
if debut < fin:
position_pivot = partitionnement_en_place(T,debut,fin)
tri_rapide_en_place(T,debut,position_pivot-1)
tri_rapide_en_place(T,position_pivot+1,fin)
1 / 5 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !