Travaux Dirigés
Le tri à bulles
TD sur le tri à bulle.doc
1ère année Page:1/3
Extrait du référentiel : BTS Systèmes Numériques option A (Informatique et Réseaux) Niveau(x) S4. Développement logiciel
S4.4. Programmation procédurale
S4.7. Langages de programmation
Manipulations de données (« quoi ») en pseudo-langage et/ou en langage C
Transcription d’algorithmes (« comment ») en pseudo-langage et/ou en langage C Développement de programmes « console » avec gestion des arguments de la ligne de commande
C++
4 4
3 3
Objectifs du TD :
- Principe du tri à bulles - Algorithme d’un tri à bulles
- Implémentation en langage C d’un tri à bulles
- Compléments (variantes du tri à bulles : tri-cocktail, tri jump-down et tri combsort) Pré-requis : Les bases de la programmation en langage C/C++
PRINCIPE DU TRI À BULLES
Le principe du tri à bulles est de comparer deux à deux les éléments e1 et e2 consécutifs d'un tableau et d'effecteur une permutation si e1 > e2. On continue de trier jusqu'à ce qu'il n'y ait plus de permutation possible.
Autrement dit, le principe du tri à bulles est de comparer deux valeurs adjacentes et d'inverser leur position si elles sont mal placées. Alors, qu'entend-t-on par "mal placé" ? C'est très simple et surtout, c'est logique : si un premier nombre x est plus grand qu'un deuxième nombre y et que l'on souhaite trier l'ensemble par ordre croissant, alors x et y sont mal placés et il faut les inverser. Si, au contraire, x est plus petit que y, alors on ne fait rien et l'on compare y à z, l'élément suivant.
C'est donc itératif. Et on parcourt ainsi la liste jusqu'à ce qu'on ait réalisé n-1 passages (n
Travaux Dirigés
Le tri à bulles
TD sur le tri à bulle.doc
1ère année Page:2/3
représentant le nombre de valeurs à trier) ou jusqu'à ce qu'il n'y ait plus rien à inverser lors du dernier passage.
Exemple en « images » d’un tri à bulles
ALGORITHME D’UN TRI À BULLES
Algorithme d’un tri à bulle
Travaux Dirigés
Le tri à bulles
TD sur le tri à bulle.doc
1ère année Page:3/3
Question 1
Testez l’algorithme ci-dessus à l’aide du logiciel « AlgoBox » disponible en version portable dans le dossier « support » de l’activité.
Attention à la syntaxe liée au logiciel AlgoBox (voir onglet « Aide »).
Expliquez le fonctionnement de l’algorithme.
Question 2
Modifiez l’algorithme précédent de manière à ce que le nombre d’éléments de la liste aléatoire devienne « flexible » (via une entrée utilisateur ci-dessous repérée N).
Exemple de résultat attendu
IMPLÉMENTATION EN « C » D’UN TRI À BULLES
Question 3
Réalisez le programme en langage C correspondant à l’algorithme de la question 2.
COMPLÉMENTS SUR LE TRI À BULLES (VARIANTES)
https://fr.wikipedia.org/wiki/Tri_%C3%A0_bulles http://lwh.free.fr/pages/algo/tri/tri.htm