Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter
Séquence
Tri à bulles Socle
Écrivez triABulles(int[] tableau) qui trie le tableau par ordre croissant et le renvoie.
Exemple · déroulé pas à pas · Le tri à bulles, échange par échange
À chaque tour, les grandes valeurs « remontent » vers la fin du tableau.
for (int tour = 0 ; tour < t.length - 1 ; tour++) {
for (int i = 0 ; i < t.length - 1 - tour; i++) {
if (t[i] > t[i + 1 ]) {
int temporaire = t[i];
t[i] = t[i + 1 ];
t[i + 1 ] = temporaire;
}
}
}
ligne variables sortie tableau explication 3 tour = 0, i = 0 [5] [1] 4 2 5 > 1 ? Oui → il faut échanger. 6 tour = 0, i = 0 [1] [5] 4 2 (échange) Échange fait, via la variable temporaire. 3 tour = 0, i = 1 1 [5] [4] 2 5 > 4 ? Oui → échange. 6 tour = 0, i = 1 1 [4] [5] 2 (échange) Le 5 continue de remonter. 3 tour = 0, i = 2 1 4 [5] [2] 5 > 2 ? Oui → échange. 6 tour = 0, i = 2 1 4 [2] [5] (échange) Fin du premier tour : le plus grand est à sa place définitive. C’est pourquoi le tour suivant s’arrête plus tôt. 3 tour = 1, i = 0 [1] [4] 2 5 1 > 4 ? Non → on ne touche à rien. 3 tour = 1, i = 1 1 [4] [2] 5 4 > 2 ? Oui → échange. 6 tour = 1, i = 1 1 [2] [4] 5 (échange) Le tableau est trié, mais l’algorithme ne le sait pas encore. 3 tour = 2, i = 0 [1] [2] 4 5 1 > 2 ? Non. Dernier tour, aucun échange : le tri est terminé.
Ici, un atelier : on y écrit et on y exécute du code. Il demande JavaScript.
Code de départ Exercices.java
import java.util.Arrays ;
public class Exercices {
public static void main(String [] args) {
int [] t = { 5 , 1 , 4 , 2 , 8 };
System .out.println(Arrays .toString(triABulles(t)));
}
public static int [] triABulles(int [] tableau) {
// TODO
return tableau;
}
}
Le socle se valide dans l’atelier, qui demande JavaScript.
Indice 1 On compare chaque paire de voisins et on les échange s’ils sont dans le désordre ; on recommence jusqu’à ce qu’aucun échange n’ait lieu. L’échange demande une variable temporaire.