Łącząc te dwie pętle sortując wewnętrznie naprzemiennie w kierunku normalnym i odwrotnym, otrzymujemy algorytm sortowania koktajlowego.
Kod źródłowy Przykład implementacji algorytmu w pseudojęzyku:
function cocktail_sort(list, list_length) // pierwszy element zbioru ma indeks 0 { bottom = 0; top = list_length - 1; zamiana = true; while(zamiana == true) // jeżeli żaden element nie został zamieniony, lista jest posortowana
zamiana = false; for(i = bottom; i < top; i = i + 1)
if(list[i] > list[i + 1]) // sprawdzamy czy elementy są na właściwych miejscach
zamien(list[i], list[i + 1]); // zamieniamy elementy miejscami zamiana = true;
// zmniejszamy wartość `top` ponieważ element o największej wartości jest posortowany top = top - 1; for(i = top; i > bottom; i = i - 1)
if(list[i] < list[i - 1])
zamien(list[i], list[i - 1]); zamiana = true;
// zwiększamy wartość `bottom` ponieważ element o najmniejszej wartości jest posortowany bottom = bottom + 1;
Optymalizacja Jednym ze sposobów optymalizacji jest dodanie instrukcji warunkowej, która sprawdza, czy nastąpiła zamiana elementów po pierwszym przejściu pętli, jeżeli nie – lista jest posortowana.