{ File: ordsel.pas } { Scopo: ordinamento di un vettore per selezione del minimo } { E` richiesta la definizione preliminare di: const NumElementi = ...; type TipoElemento = ...; TipoIndice = 1..NumElementi; TipoVettore = array [TipoIndice] of TipoElemento; } procedure SelectionSort (var A: TipoVettore); { Ordina il vettore A usando l'algoritmo di ordinamento per selezione del minimo. } var i, j, i_min : TipoIndice; temp : TipoElemento; begin { SelectionSort } for i := 1 to NumElementi-1 do begin i_min := i; { ricerca la componente minima in A[i..n] } for j := i+1 to NumElementi do if A[j] < A[i_min] then i_min := j; if i <> i_min then begin { scambia A[i_min] e A[i] } temp := A[i_min]; A[i_min] := A[i]; A[i] := temp end end end; { SelectionSort }