Java - 8.3.2.1 Correction du challenge : trier un tableau

Cette leçon corrige le challenge sur les tableaux. Le programme lit des valeurs au clavier, les range dans un tableau, puis trie ce tableau. Le tri repose sur une méthode qui échange deux valeurs, appelée permute dans la vidéo.

Lire et afficher le tableau

Un objet Scanner lit ce que l'utilisateur saisit au clavier. La capacité du tableau correspond à la valeur saisie, puis une boucle for demande chaque valeur et la range dans le tableau.

Une méthode d'affichage parcourt ensuite le tableau et montre chaque élément. Elle permet de vérifier le résultat avant et après le tri.

Permuter deux valeurs

Permuter consiste à échanger le contenu de deux cases du tableau. Il faut une variable temporaire pour ne pas perdre la première valeur pendant l'échange.

La méthode permute reçoit le tableau et deux indices, puis effectue l'échange en trois étapes.

public static void permute(int[] tableau, int i, int j) {
    int temp = tableau[i];
    tableau[i] = tableau[j];
    tableau[j] = temp;
}

Trier le tableau

La méthode de tri parcourt le tableau plusieurs fois. À chaque passage, elle compare chaque élément avec le suivant.

Avec la condition qui teste si le premier élément est inférieur au second, les plus grandes valeurs remontent vers le début. Le tableau finit ainsi du plus grand au plus petit.

Pour obtenir l'ordre croissant, il suffit d'inverser la condition de comparaison. Le tableau est alors trié du plus petit au plus grand.

  • Comparer chaque élément avec le suivant.
  • Permuter les deux valeurs si la condition est vraie.
  • Répéter le parcours jusqu'à obtenir le bon ordre.

En résumé

Le challenge combine saisie, tableau, boucles et méthodes. La permutation est le cœur du tri, car elle échange deux valeurs. En changeant la condition de comparaison, on passe d'un ordre à l'autre. Tester le programme avec plusieurs valeurs aide à bien comprendre chaque étape.

Points clés

  • Un Scanner lit les valeurs saisies au clavier.
  • La méthode permute échange deux valeurs grâce à une variable temporaire.
  • Le tri compare chaque élément avec le suivant et permute si besoin.
  • Inverser la condition de comparaison change le sens du tri.

Questions fréquentes

Pourquoi utiliser une variable temporaire dans permute ?

Sans elle, la première valeur serait écrasée avant d'être copiée. La variable temporaire garde cette valeur pendant l'échange.

Comment passer de l'ordre décroissant à l'ordre croissant ?

Il suffit de changer la condition de comparaison. La vidéo montre que le reste du programme ne change pas.

Pourquoi le programme demande-t-il la capacité du tableau ?

La capacité fixe la taille du tableau. Le programme demande ensuite autant de valeurs qu'il y a de cases.