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 -= 1 (cela veut dire fin = fin -1)
  Pour tout i dans [fin, debut] en descendant, faire:
    si i et i+1 doivent être échangées, le faire
  debut += 1 (ce qui veut dire debut = debut + 1)
tant qu'au moins l'un des parcours a inversé un élément