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)