constante entier N <- ... { Methode de reorganisation d'un tableau t } { d'entiers des indices indi a indf inclus } { par replacage a gauche de toutes les valeurs } { plus petites que t[pivot], a droite de toutes } { les valeur plus grande que t[pivot] } { et au centre de toutes les valeurs egales } { a t[pivot] } { Retourne l'indice de la valeur d'indice } { maximum, apres replacage, de toutes } { les valeurs egales a t[pivot] } entier action pivotage(t,indi,indf,pivot) Donnees / Resultat t : Tableau [N] de entier Donnees indi : entier tndf : entier pivot : entier Locales aux : entier i : entier j : entier aux <- t[pivot] t[pivot] <- t[indf] t[indf] <- aux j <- indi pour i de indi à indf-1 faire si t[i] <= t[indf] alors aux <- t[i] t[i] <- t[j] t[j] <- aux j <- j+1 fsi fait aux <- t[indf] t[indf] <- t[j] t[j] <- aux retourner j fin action { Methode de tri par QuickSort d'un tableau } { d'entiers des indices indi a indf compris } { Pivot choisi a la valeur moyenne des valeurs } { min et max } action triRapide(t,indi,indf) Donnees / Resultat t : Tableau [N] de entier Donnees indi : entier indf : entier Locales iMedian : entier aux : entier pivot : entier si indf = indi+1 alors si t[indf] < t[indi] alors aux <- t[indi] t[indi] <- t[indf] t[indf] <- aux fsi sinon pivot <- (indi+indf)/2 iMedian <- pivotage(t,indi,indf,pivot) si iMedian > indi+1 alors triRapide(t,indi,iMedian-1) fsi si iMedian < indf-1 alors triRapide(t,iMedian+1,indf) fsi fsi fin action { Methode de tri par QuickSort } { de l'ensemble d'un tableau d'entiers } { Pivot choisi a la valeur moyenne des valeurs } { min et max du tableau } action triRapide(t) Données t : Tableau [N] de entier triRapide(t,0,N-1) fin action