Réintroduisons maintenant la petite optimisation que nous avions retiré à l'étape précédente : Si un parcours n'a rien inversé, c'est que le tableau est maintenant trié. Dans ce cas, il faut arrêter le processus de tri.
[!java|python|c]Pour cela, utilisez simplement le mot-clé
break>
, qui coupe l'exécution de la boucle
englobante. Attention, si vous avez plusieurs boucles imbriquées, c'est
celle situé tout au fond (au plus près du mot-clé break) qui est cassée.[/!]
[!scala]Pour cela, quittez simplement la fonction courante en appelant
return
sans lui associer de valeur.[/!]
Pour tout i dans [lgr-2,0] (parcours du plus grand au plus petit) Pour tout j dans [0, i] Si les cases j et j+1 doivent être inversées, le faire Si le parcours sur les j n'a rien inversé, casser la boucle
Cet optimisation est encore plus décevante : on ne gagne que quelques pour-cents en nombre de lectures sur BubbleSort2.