Descriviamo come è fatta questa funzione al suo interno con la pseudo-codifica:

system

Incominciamo col fissare il perno su sx (p=sx) poi decrementiamo dx mentre a[p] è minore o uguale di a[dx]. Quando a[p] diventa maggiore di a[dx], scambiamo i due elementi.

Fissiamo il perno su dx (p=dx); incrementiamo sx mentre a[p] è maggiore o uguale di a[sx]. Quando a[p] diventa minore di a[sx], scambiamo i due elementi e ricominciamo.

Quando anche il ciclo esterno sarà concluso, avremo trovato la posizione corretta del perno e restituiamo la sua posizione al programma chiamante (return(p);)

Questa funzione sarà richiamata dalla funzione QuickSort, descritta di seguito.