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).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
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ì?

Rispondi quotando