Cet exercice est à faire dans le fichier js/entrainement-2.js
.
Le but de cet exercice est de créer une fonction isAscending
capable d'indiquer si tous les éléments d'un tableau sont rangés par ordre croissant.
On donne un tableau en argument à la fonction et elle nous renvoie true
si tous les éléments sont rangés par ordre croissant, sinon false
.
Exemple
// Tableau à tester
const sortedArray = [1, 2, 3, 4, 5];
const unsortedArray = [5, 4, 3, 2, 1];
const result = isAscending(sortedArray); // Doit renvoyer true
const result2 = isAscending(unsortedArray); // Doit renvoyer false
Étape 1
Créer une fonction isAscending
avec un paramètre testedArray
qui viendra récupérer le tableau à vérifier.
Étape 2
Écrire le code permettant de vérifier si le tableau est bien rangé par ordre croissant. Renvoyer true
si le tableau est bien rangé, sinon false
.
Il y a trois tableaux de test disponibles dans le fichier js/entrainement-2.js
. Mais tu peux également tester tes propres tableaux !
Mais comment s'y prendre ?
On pourrait essayer de le faire sans code dans un premier temps :
- En premier lieu, on prendrait les deux premières entrées du tableau et on les comparerait pour savoir si la première est bien inférieure à la seconde.
- Si ce n'est pas le cas, le tableau n'est pas bien rangé par ordre croissant. On s'arrête là.
- Sinon on répète l'opération avec les deuxièmes et troisièmes entrées du tableau. Et ainsi de suite jusqu'à la fin du tableau.
Toujours flou ? Direction les indices ci-dessous !
Indices
- On doit tester toutes les entrées du tableau. Il faut trouver un moyen de faire autant de tests qu'il y a d'entrées dans le tableau.
- A chaque étape de vérification du tableau, on compare l'entrée courante, à la suivante.
- Dans un tableau, les entrées sont identifiées par des index. Pour passer d'une entrée à la suivante, on prend l'index courant et on lui ajoute 1.
- Si on trouve deux éléments mal rangés, alors le tableau est mal rangé. On peut arrêter la fonction et renvoyer
false
BONUS
Maintenant qu'on a une fonction vérifie qu'un tableau est bien ordonné, on peut passer à l'étape suivante : le trier si nécessaire !
Étapes
- Créer une fonction
sortArray
qui attend un tableau en paramètre. - Pour réordonner un tableau on peut utiliser une technique appelée tri à bulles.
- Cette technique demande de comparer toutes les entrées deux par deux comme pour l'exercice. Mais au lieu de renvoyer
false
si elles sont mal ordonnées, on les inverse ! - Bien sûr, ça ne réordonne pas le tableau du premier coup. Mais on peut refaire l'opération autant de fois que nécessaire. En fait, tant que le tableau n'est pas ordonné, on revérifie chaque couple d'entrées et on les inverse si nécessaire.
Indices
- On est déjà capables de savoir si le tableau est bien ordonné : notre fonction
isAscending
. - Pour faire quelque chose tant qu'une condition n'est pas validée, on peut utiliser une des boucles vues aujourd'hui.
- Pour inverser deux éléments d'un tableau, on doit passer par une variable temporaire :
// Tableau à trier
const array = ["un", "trois", "deux"];
// On veut inverser les entrées numéro 1 ("trois") et 2 ("deux")
// On crée une variable temporaire
const temp = array[1];
// On échange les valeurs
array[1] = array[2];
array[2] = temp;
// Et voilà !