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; Begin1 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;