def echange(V, i, j): tmp = V[i] V[i] = V[j] V[j] = tmp from echange import echange def partition (T, imin, imax): x = T[imin] while True : while T[imax] > x : imax -= 1 while T[imin] < x : imin += 1 if imin < imax : echange (T, imin, imax) imax -= 1 imin += 1 else : return imax from partition import partition def tri_rapide (T) : imin, imax = 0, len(T) - 1 tri_part(T, imin, imax) print (T) def tri_part(T, imin, imax) : if imin < imax : q = partition (T, imin, imax) tri_part(T, imin, q) tri_part(T, q + 1, imax)