W sortowaniu przez wstrząsanie (inaczej: algorytm koktajlowy) przechodzimy przez dane na przemian: raz z lewa na prawo, raz z prawa na lewo. Jest to ulepszony algorytm sortowania bąbelkowego.
# Wersja na podstawie Wróblewskiego.
def shakersort(L, left, right):
k = right
while left < right:
for j in range(right, left, -1): # od prawej
if L[j-1] > L[j]:
swap(L, j-1, j)
k = j
left = k
for j in range(left, right): # od lewej
if L[j] > L[j+1]:
swap(L, j, j+1)
k = j
right = k