[Débutant] Question sur deux while imbriqués
Bonjour tout le monde et bonne année !
Le code ci-dessous me permet de classer par ordre croissant les données d'un tableau :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| //Tri
i=0;
//i va donc de 0 à 8
while (i < tab.length ) {
//recherche du minimum
//initialisation avec le 1er élément
minimum = tab[i]; //
positionMinimum = i;
j=i;
while (j < tab.length )
{
if (tab[j] < minimum)
{
minimum = tab[j];
positionMinimum = j;
}
j++;
}
//permuttation du minimum avec le 1er élément.
temp = tab[i];
tab[i] = tab[positionMinimum];
tab[positionMinimum] = temp;
i++;
} |
Je ne comprends pas comment réagissent les While.
Est-ce que le while bleu passe dans toutes les valeurs du tableau avant de laisser la main au while vert ?
Est-ce qu'on revient au while bleu ensuite ?
Je ne comprends pas bien comment ça fonctionne, pourriez-vous s'il vous plait m'éguillier ?
Voici l'entierté du code :
Merci d'avance pour l'aide et mes meilleurs voeux.
beegees
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| public class Ex06Chap08PG
{
public static void main(String[] args)
{
int taille = 10;
int[] tableau = new int[taille];
int positionMinimum, minimum, temp;
int i = 0, j ;
// on remplit le tableau avec des nombres aléatoires
System.out.println("Tableau avant tri");
for(i = 0; i < tableau.length; i++)
{
tableau[i] = (int) (Math.random() * 50);
System.out.print(tableau[i] + " ");
}
System.out.println();
// tri
i = 0;
//i est le compteur, i doit
while (i < tableau.length - 1 )
{
System.out.println(i);
// recherche du minimum
// initialisation avec le 1er élément du tableau
minimum = tableau[i];
positionMinimum = i;
j = i;
while(j < tableau.length)
{
if (tableau[j] < minimum)
{
minimum = tableau[j];
positionMinimum = j;
}
j++;
}
// permutation du minimum avec le 1er élément
temp = tableau[i];
tableau[i] = tableau[positionMinimum];
tableau[positionMinimum] = temp;
i++;
}
System.out.println("Tableau apres tri");
for(i = 0; i < tableau.length; i++)
{
System.out.print(tableau[i] + " ");
}
System.out.println();
}
} |