Code source du tri rapide

partition(tableau T, entier premier, entier dernier)
    debut
        entier compteur, pivot, i
        compteur<-premier
        pivot<-T(premier)

        pour i=deb+1 à dernier faire
            si T(i)<pivot alors //si l'élément est inférieur au pivot
                compteur<-compteur+1 //on incrémente le compteur (modification de la place finale du pivot)
                echanger(T,compteur,i) //on place l'élément à la position finale du pivot
            fin si
        fin pour
        
        echanger(T,compteur,premier) //on place le pivot à sa place
        retourner(compteur) //on renvoie la position finale du pivot
    fin

tri_rapide_bis(tableau T, entier premier, entier dernier)
    debut
        entier pivot

        si premier<dernier alors //condition d'arret de la récursivité
            pivot<-partition(T,premier,dernier) //partition du tableau en 2
            tri_rapide_bis(T,premier,pivot-1) //tri de la premiére partition
            tri_rapide_bis(T,pivot+1,dernier) //tri de la seconde partition        
        fin si
    fin

tri_rapide(tableau T)
    debut
        tri_rapide_bis(T,0,taille(T)-1)) //tri du tableau entier
    fin