Traduction en Java
Tri par sélection
 
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 diagrammes

Source 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 , 75

Tableau une fois trié :
4 , 11 , 12 , 28 , 39 , 43 , 46 , 53 , 65 , 65 , 69 , 72 , 73 , 75 , 77 , 82 , 83 , 87 , 95
 
 

Remonter