codice:
...
DO 10, I=1, DIM-1
PRIMO=VETTORE (I)
COST=I
DO 20, J=I+1, DIM
IF(VETTORE (J) .GT. PRIMO) THEN
PRIMO= VETTORE (J)
COST=J
ENDIF
20 CONTINUE
IF (COST .NE. I) THEN
TEMP=VETTORE (I)
VETTORE (I) = VETTORE (COST)
VETTORE (COST) = TEMP
ENDIF
10 CONTINUE
PRINT*, "IL VETTORE ORDINATO Š:"
DO 30, I=1, DIM
PRINT*, VETTORE (I)
30 CONTINUE
STOP
END
Come si sa, questo è un modo per effettuare l'ordinamento di un vettore (precisamente si tratta del cosiddetto "ordinamento per selezione", se non vado errato).
Io cerco di capire cosa fa effettivamente la CPU in tale procedimento, sia pure senza entrare nel dettaglio (e questo rientra sempre nella mia difficoltà di capire BENE cosa faccia un ciclo, non nei casi più semplici, ma in quelli in cui ci sono più cicli indentati, etc. etc.).
In questo caso, ad esempio (il mio livello è praticamente infimo, quindi non vi meravigliate del fatto che io faccia simili domande), io ho due cicli annidati.
Io penso che succeda una cosa del genere: si prende il primo elemento del vettore, lo si confronta con TUTTI i successivi, dopodichè si passa al secondo, e si fa lo stesso, fino ovviamente all' (n-1) - esimo (nel mio caso al dim-1 esimo).
Mi confermate che sia così?