Un algoritmo di ordinamento
- molto complicato: ricorsivo e difficile da ricordare
- ma ottimo: è quasi sempre molto veloce…
Procedure QUICKSORT(var V: Vettore; Inf, Sup: Integer);
Var
i, j: Integer;
Perno: Elemento;
Begin
If(Inf < Sup) Then
Begin
i:=Inf;
j:=Sup;
Perno:=V[(Inf+Sup) DIV 2];
Repeat
While(V[i] < Perno) Do
Inc(i);
While(Perno < V[j]) Do
Dec(j);
If(i <= j) then
Begin
SCAMBIA(V[i], V[j]);
Inc(i);
Dec(j);
End;
Until(I > J);
QUICKSORT(V, Inf, j);
QUICKSORT(V, i, Sup);
End;
End;