Tri Cocktail (seconde version)

Nous allons appliquer la même optimisation que BubbleSort2 à CocktailSort. Il nous faut nous souvenir des bornes du tableau pas encore trié, et le parcourir alternativement de droite à gauche et de gauche à droite:

debut=0; fin=lgr-2
Faire
  Pour tout i dans [debut,fin], faire:
    si i et i+1 doivent être échangées, le faire
  fin--
  Pour tout i dans [fin, debut] en descendant, faire:
    si i et i+1 doivent être échangées, le faire
  debut++
tant qu'au moins l'un des parcours a inversé un élément