const SIZE = 1023 ;
var i, j,
n, m,
v,
tmp,
A [SIZE] ;
v := A[m] ;
i := n ; j := m ;
whileone
A[i] < v do i := i+1 ;
v <= A[j] do j := j-1 ;
A[j] < A[i] do begin
tmp := A[i] ; A[i] := A[j] ; A[j] := tmp
end
end ;
Figure 1 : Exemple d'utilisation de la structure whileone
Les éléments du tableau A de A[n] à
A[m] sont réarrangés pour être partitionnés en deux
parties : la partie de gauche A[n] à A[j-1],
pour un certain j, qui contient tous les éléments
inférieurs à un v donné ; la partie droite
A[j] à A[m] qui contient tous les éléments
plus grands que ou égaux à v.