Due soli dati da ordinare, cioè il più piccolo deve precedere il più grande.
Scambiare il contenuto di due variabili
Procedure SCAMBIA(Var X, Y: Real); Var Temp: Real; Begin Temp:=X; X:=Y; Y:=Temp; End;
Scambiare i valori contenuti nell’array V alle posizioni a e b
Procedure SCAMBIA(Var V: Vettore; a, b: Integer); Var Temp: Real; Begin Temp:=V[a]; V[a]:=V[b]; V[b]:=Temp; End; ... SCAMBIA(V, a, b); ...
oppure
Procedure SCAMBIA(Var X, Y: Real); Var Temp: Real; Begin Temp:=X; X:=Y; Y:=Temp; End; ... SCAMBIA(V[a], V[b]); ...
Ordinare un array di due elementi
... If(V[1] > V[2]) Then SCAMBIA(V[1], V[2]);
oppure, senza la chiamata…
... If(V[1] > V[2]) Then Begin Temp:=V[1]; V[1]:=V[2]; V[2]:=temp; End;
Esempio
Sia
V=(20, 15)
allora
SCAMBIA(V, 1, 2);
produce
V=(15, 20)
Ordinare un sottoarray di due elementi
... If(V[i] > V[i+1]) Then SCAMBIA(V[i], V[i+1]);
Esempio
Sia
V=(20, 15, 10, 3)
allora
... If(V[2] > V[3]) Then SCAMBIA(V, 2, 3);
produce
V=(20, 10, 15, 3)