PROGRAM TRI

   IMPLICIT NONE

   ! Declarations
   INTEGER :: n, i, j, jmin
   REAL :: umax, umin
   REAL, DIMENSION(100) :: u, v

   ! Récupération des donnees du fichier don.dat
   OPEN(10, file='don.dat') 
   READ(10,*) n
   DO i = 1, n
      READ(10,*) u(i)
   END DO
   CLOSE(10)

   umax = u(1) 
   DO i = 2, n                 ! Determination du max de u 
       IF( u(i) >= umax ) umax = u(i)
   END DO

   DO i = 1, n            ! Recherche du min + indice de u
       jmin = 1
       umin = umax
       DO j = 1, n
            IF ( u(j) <= umin ) THEN
                  umin = u(j)
                  jmin = j
             END IF
        END DO
        v(i) = umin                ! Met la valeur min dans v
        u(jmin) = umax         ! Ecrase la valeur min de u
   END DO

   OPEN(20, file='res.dat') ! Ecriture dans res.dat
   WRITE(20,*) n
   DO i = 1, n
      WRITE(20,*) v(i)
   END DO
   CLOSE(20)

END PROGRAM TRI
