Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di stino90
    Registrato dal
    Feb 2007
    Messaggi
    165

    [FORTRAN 90] Bubble sort

    Salve, non capisco il seguente codice, che sarebbe l'algoritmo di ordinamento bubble sort in fortran90:

    es=riemp
    DO
    scambio=.FALSE.
    DO i=1,es-1
    IF(vet(i)>vet(i+1)) THEN
    appo=vet(i)
    vet(i)=vet(i+1)
    vet(i+1)=appo
    scambio=.TRUE.
    END IF
    END DO
    es=es-1
    IF(.NOT.scambio) EXIT
    END DO

    Quello che non capisco è l'istruzione "IF(.NOT. scambio) EXIT, dal momento che se per esempio il primo valore è < del secondo, si dovrebbe avere che la variabile logica scambio rimane posta pari a .false., come inizializzata in principio. Ebbene, se pari a .false., .not.scambio è dunque vera e quindi si dovrebbe uscire dal ciclo iniziale...cosa c'è che non quadra in quello che sto dicendo? In tal modo non si continuerebbe con l'algoritmo...Chi può aiutarmi a comprendere? Grazie, saluti :ciauz

    No, ovviamente va svolto il ciclo interno e quello che ho detto sopra è na fesseria quindi :-) Ho capito che serve per uscire quando è terminato l'ordinamento, dal momento che scambio sarà pari a .false. e si esce dal ciclo iniziale una volta ordinato il vettore, dovrei aver afferrato il concetto, scusate per il post

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,311
    Tra

    scambio=.FALSE.

    e

    IF(.NOT.scambio) EXIT

    c'è un intero ciclo DO..ENDDO

    Se durante quel ciclo avviene uno scambio, allora avrai scambio=.TRUE., altrimenti vuol dire che il vettore è ordinato e non c'è più bisogno di continuare l'esecuzione del programma.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di stino90
    Registrato dal
    Feb 2007
    Messaggi
    165
    Grazie per la risposta, avevo comunque editato accorgendomi dell'errore ;-)

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,311
    Beh ... evita di editare il post iniziale perché non viene riletto ... in futuro inserisci un nuovo post nella discussione in modo che si possa seguire il senso della discussione in modo naturale ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di stino90
    Registrato dal
    Feb 2007
    Messaggi
    165
    ok ;-)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.