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)

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
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki