Selection sort
Si può individuare il valore minimo nell'array e scambiarlo con il valore alla posizione 0 (in questo modo l'elemento alla posizione 0 occupa il posto che gli spetta...)
INTERO posMin=0
PER(j DA 1 A n-1 PASSO +1)
SE(v[j] < v[posMin]) ALLORA
posMin=j
SCAMBIA(v, 0, posMin)
PER(j DA 1 A n-1 PASSO +1)
SE(v[j] < v[posMin]) ALLORA
posMin=j
SCAMBIA(v, 0, posMin)
Ripetendo la stessa operazione con il sottovettore
da 1 a n-1, da 2 a n-1, ..., da n-2 a n-1
sarà al suo posto l'elemento alla posizione
1, 2, ..., n-2
E l'elemento alla posizione n-1?PROCEDURA selesort(REALE v[])
INIZIO
INTERO n=v.QUANTI,
posMin
PER(i DA 0 A n-2 PASSO +1)
INIZIO
posMin=i
PER(j DA i+1 A n-1 PASSO +1)
SE(v[j] < v[posMin]) ALLORA
posMin=j
SCAMBIA(v, i, posMin);
FINE
FINE
INIZIO
INTERO n=v.QUANTI,
posMin
PER(i DA 0 A n-2 PASSO +1)
INIZIO
posMin=i
PER(j DA i+1 A n-1 PASSO +1)
SE(v[j] < v[posMin]) ALLORA
posMin=j
SCAMBIA(v, i, posMin);
FINE
FINE