repeta - cauta primul element a[i]>=x prin parcurgere stanga ->dreapta - cauta primul element a[j]>=x prin parcurgere dreapta -> stanga daca i<=j atunci - interschimba a[i] cu a[j] pana cand parcurgerile se intalnesc ( i>j) Dupa o prima partitionare se aplica aceeasi procedura celor doua partitii astfel rezultate, s.a.m.d pana la partitii banale de cate 1 element Evitarea unor interschimbari inutile pentru elementele egale cu pivotul se obtine punand conditia a[i]>x, respectiv a[j]>x ( sunt necesare teste pentru a nu se depasi limitele tabloului) Cand parcurgerile se opresc pe acelasi element ( i<=j), are loc de asemenea o interschimbare inutila; se va inlocui conditia cu i<j, repectiv iesirea din bucla cu i>=j