/* Auteur: Nicolas JANEY          */
/* nicolas.janey@univ-fcomte.fr   */
/* Fevrier 2005                   */

public class RechercheMinMax {

  /* Fonction d'initialisation d'un tableau               */
  /* avec des valeurs tirees au hasard entre 0 et 9       */

  public static void initTableau(int [] t) {
    int i;
    for ( i = 0 ; i < t.length ; i++ )
      t[i] =(int) (Math.random()*1000);
  }
  
  /* Fonction d'affichage d'un tableau                    */
  
  public static void afficheTableau(int [] t) {
    int i;
    for ( i = 0 ; i < t.length ; i++ )
      System.out.print(t[i]+" ");
    System.out.println();
  }
  
  public static int min(int [] t) {
    int i;
    int mini = t[0];
    for ( i = 1 ; i < t.length ; i++ )
      if ( t[i] < mini )
        mini = t[i];
    return(mini);
  }
  
  public static int indiceMin(int [] t) {
    int i;
    int mini = t[0];
    int imin = 0;
    for ( i = 1 ; i < t.length ; i++ )
      if ( t[i] < mini ) {
        imin = i;
        mini = t[i]; }
    return(imin);
  }
  
  public static int indiceMax(int [] t) {
    int i;
    int maxi = t[0];
    int imax = 0;
    for ( i = 1 ; i < t.length ; i++ )
      if ( t[i] > maxi ) {
        imax = i;
        maxi = t[i]; }
    return(imax);
  }
  
  public static int max(int [] t) {
    int i;
    int maxi = t[0];
    for ( i = 1 ; i < t.length ; i++ )
      if ( t[i] > maxi )
        maxi = t[i];
    return(maxi);
  }
  
  public static int [] rechercheMinMax(int [] t) {
    int i;
    int maxi = t[0];
    int imax = 0;
    int mini = t[0];
    int imin = 0;
    int [] mm = new int[4];
    for ( i = 1 ; i < t.length ; i++ )
      if ( t[i] > maxi ) {
        imax = i;
        maxi = t[i]; }
        else
        if ( t[i] < mini ) {
          imin = i;
          mini = t[i]; }
    mm[0] = maxi;
    mm[1] = mini;
    mm[2] = imax;
    mm[3] = imin;
    return(mm);
  }
  
  /* Fonction principale                                  */

  public static void main(String [] args) {
    int [] t = new int[20];
    initTableau(t);
    System.out.println("Le tableau contient les entiers :");
    afficheTableau(t);
    System.out.println("Valeur minimale        : "+min(t));
    System.out.println("Indice valeur minimale : "+indiceMin(t));
    System.out.println("Valeur maximale        : "+max(t));
    System.out.println("Indice valeur maximale : "+indiceMax(t));
    initTableau(t);
    System.out.println("Le tableau contient les entiers :");
    afficheTableau(t);
    int [] r = rechercheMinMax(t);
    System.out.println("maximum, minimum, indice maximum, indice minimum :");
    afficheTableau(r);
  }
}