Page 2 of 10
Supponiamo di avere il nostro vettore A che contiene 10 elementi memorizzati nelle posizioni che vanno da 0 a N-1. Avremo bisogno di 3 indici che chiameremo rispettivamente p (perno), sx (elemento di sinistra) e dx (elemento di destra). Inizialmente sx e p punteranno alla stessa posizione cioè alla posizione 0, mentre dx punterà alla posizione N-1. Si comincia col confrontare l'elemento puntato dal perno con l'elemento dx: se essi sono ordinati si lascia tutto inalterato, si decrementa l'indice dx e si ripete il ragionamento. Il codice C per far ciò è il seguente:
while (A[dx] >=A[p] && dx > sx) {dx--};