Ordinare due elementi
Scambiare i valori contenuti nell'array v alle posizioni a e b
...
SCAMBIA(v, a, b);
...
PROCEDURA SCAMBIA(IN/OUT REALE v[], IN INTERO a, IN INTERO b)
INIZIO
REALE temp
temp=v[a]
v[a]=v[b]
v[b]=temp
FINE
SCAMBIA(v, a, b);
...
PROCEDURA SCAMBIA(IN/OUT REALE v[], IN INTERO a, IN INTERO b)
INIZIO
REALE temp
temp=v[a]
v[a]=v[b]
v[b]=temp
FINE
oppure, se il linguaggio prevede il passaggio per riferimento (per parametri semplici)
...
SCAMBIA(v[a], v[b])
...
PROCEDURA SCAMBIA(IN/OUT REALE a, IN/OUT REALE b)
INIZIO
REALE temp
temp=a
a=b
b=temp
FINE
SCAMBIA(v[a], v[b])
...
PROCEDURA SCAMBIA(IN/OUT REALE a, IN/OUT REALE b)
INIZIO
REALE temp
temp=a
a=b
b=temp
FINE
Ordinare un array di due elementi
SE(v[0] > v[1]) ALLORA
SCAMBIA(v, 0, 1)
SCAMBIA(v, 0, 1)
oppure, senza la chiamata...
SE(v[0] > v[1]) ALLORA
INIZIO
REALE temp
temp=v[0]
v[0]=v[1]
v[1]=temp
FINE
INIZIO
REALE temp
temp=v[0]
v[0]=v[1]
v[1]=temp
FINE
Esempio
Sia v=(20, 15) alloraSCAMBIA(v, 0, 1)
produce v=(15, 20)
Ordinare un sottoarray di due elementi
SE(v[i] > v[i+1]) ALLORA
SCAMBIA(v, i, i+1)
SCAMBIA(v, i, i+1)
Esempio
Sia v=(20, 15, 10, 3) alloraSCAMBIA(v, 1, 2)
produce v=(20, 10, 15, 3)