/* Tri par selection d'un tableau d'entiers */ import java.util.Random; public class TriSelection { /* Methode d'affichage des valeurs contenues */ /* dans un tableau de int */ static void affichageTableau(int [] t) { int i; for ( i = 0 ; i < t.length ; i = i+1 ) { Ecran.afficher(t[i]," "); } Ecran.sautDeLigne(); } /* Methode de creation d'un tableau de 10 int */ /* initialise avec des valeurs croissantes */ static int [] initRandCroissant(int n,long seed) { Random r = new Random(seed); int [] t = new int[n]; int i; t[0] =(int) (r.nextDouble()*10.0); for ( i = 1 ; i < t.length ; i = i+1 ) { t[i] = t[i-1] + (int) (r.nextDouble()*10.0); } return t; } /* Methode de creation d'un tableau de 10 int */ /* initialise avec des valeurs croissantes */ static int [] initRandQuasiCroissant(int n,long seed) { Random r = new Random(seed); int [] t; int i; int nb = 10; int i1; int i2; int aux; t = initRandCroissant(n,seed); for ( i = 0 ; i < nb ; i = i+1 ) { i1 =(int) (r.nextDouble()*(n+1)); i2 =(int) (r.nextDouble()*(n+1)); aux = t[i1]; t[i1] = t[i2]; t[i2] = aux; } return t; } /* Methode de creation d'un tableau de 10 int */ /* initialise avec des valeurs tirees au sort */ /* entre 0 et 1000 inclus */ static int [] initRand() { int [] t = new int[10]; int i; for ( i = 0 ; i < t.length ; i = i+1 ) { t[i] =(int) (Math.random()*1001.0); } return t; } /////////////////////////////////////////////////// /* Methode de recherche de l'indice de la valeur */ /* maximale d'un tableau restreint */ /* a ses n premieres valeurs */ static int indiceDuMaximum(int n,int [] t) { int i; int iMax = n; for ( i = n-1 ; i >= 0 ; i = i-1 ) { if ( t[i] > t[iMax] ) { iMax = i; } } return iMax; } /* Methode de tri par selection */ /* d'un tableau d'entiers */ static void triSelection(int [] t) { int i; int aux; int iMax; for ( i = t.length-1 ; i > 0 ; i = i-1 ) { iMax = indiceDuMaximum(i,t); if ( t[iMax] != t[i] ) { aux = t[iMax]; t[iMax] = t[i]; t[i] = aux; } } } /////////////////////////////////////////////////// /* Programme principal */ public static void main(String [] args) { int [] t; t = initRand(); affichageTableau(t); triSelection(t); affichageTableau(t); } }