Bonjour ,

je me retrouve confronter à un problème de compréhension au niveau de l algorithme du tri à bulles par odre croissant.
Dans la partie significative du code (ci dessous ) assurant l'inversion ,je ne comprend pas :
1-pourquoi on affecte à l' entier boucle la valeur nbreElem-1 (correpond au nombre d'éléments du tableau).
2-Pourquoi incrémenter boucle de -1 , je comprends bien que c' est pour sortir de la boucle while , mais pour moi cela signifie que meme lorsque le tri est réalisé , on continue à le trier??

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int boucle = nbElem -1  ;           // boucle pour le tri
      while (boucle >= 1){
         for (int i = 0 ; i <= boucle - 1 ; i++){
            if (tabEntier[i] > tabEntier[i+1]){
               // Inversion
               temp = tabEntier[i];
               tabEntier[i] = tabEntier[i+1];
               tabEntier[i+1] = temp;
            }         
         }
         boucle = boucle - 1;
      
         System.out.print("Contenu du tableau pendant le tri : ");
         for (int i = 0 ; i <= (tabEntier.length - 1); i++) {
            System.out.printf("%4d",tabEntier[i]);
         }
         System.out.println();      
      
      }
je vous remercie.