informatique (tronc commun des prépas scientifiques) · Chapitre 3 · Exercice de TD
Le tri à bulles ne déplace qu'à petits pas
Boucles imbriquées et complexité quadratique · niveau 3 (difficile)
Énoncé
Démontrer qu'au cours d'un passage du tri à bulles, un élément ne peut se déplacer vers la gauche que d'une seule position au maximum. En déduire le comportement sur un tableau du type .
Corrigé
Démonstration :
- La boucle interne parcourt le tableau de gauche à droite ( augmente).
- Un élément situé à l'indice ne recule vers la gauche (à l'indice ) que s'il est plus petit que son voisin de gauche ().
- Une fois l'échange effectué, l'indice de boucle passe à , l'élément est maintenant à gauche de la comparaison courante. Il ne sera plus comparé ni déplacé de tout le reste de la passe. Par conséquent, un élément ne peut reculer que d'une seule case par passe complète. Si le minimum (la valeur 1) se situe tout à droite d'une liste de taille , il devra reculer de cases pour atteindre sa position définitive. L'algorithme effectuera donc systématiquement passes, même si le reste de la liste est parfaitement trié.