Une classe Java solution du problème :
Le sous programme Java implantant l'algorithme de tri par sélection :
Une classe complète permettant l'exécution du sous-programme précédent :
class ApplicationTriBulle {
static int[] table = new int[20] ; // le tableau à trier : 20 éléments
static void AfficherTable ( ) {
// Affichage du tableau
int n = table.length-1;
for ( int i = 1; i <= n; i++)
System.out.print(table[i]+" , ");
System.out.println();
}static void InitTable ( ) {
// remplissage aléatoire du tableau
int n = table.length-1;
for ( int i = 1; i <= n; i++)
table[i] = (int)(Math.random()*100);
}static void main(String[ ] args) {
InitTable ( );
System.out.println("Tableau initial :");
AfficherTable ( );
TriSelect ( );
System.out.println("Tableau une fois trié :");
AfficherTable ( );
}}
static void TriSelect ( ) {
// sous-programme de Tri par sélection : on trie les éléments du n°1 au n°19
int n = table.length-1;
for ( int i = 1; i <= n-1; i++)
{ // recommence une sous-suite
int m = i; // i est l'indice de l'élément frontière ai = table[ i ]
for ( int j = i+1; j <= n; j++) // (ai+1, a2, ... , an)
if (table[ j ] < table[ m ]) // aj est le nouveau minimum partiel
m = j ; // indice mémorisé
//on échange les positions de ai et de aj :
int temp = table[ m ];
table[ m ] = table[ i ];
table[ i ] = temp;
}Image en diagrammes structurés JGrasp-Like du programme
informations sur les diagrammesSource recopiable (cliquez sur le lien)
Tableau initial :
53 , 77 , 11 , 72 , 28 , 43 , 65 , 83 , 39 , 73 , 82 , 69 , 65 , 4 , 95 , 46 , 12 , 87 , 75Tableau une fois trié :
4 , 11 , 12 , 28 , 39 , 43 , 46 , 53 , 65 , 65 , 69 , 72 , 73 , 75 , 77 , 82 , 83 , 87 , 95