def cocktail_shaker_sort(unsorted):
 for i in range((len(unsorted) - 1), 0, (-1)):
  swapped = False
  for j in range(i, 0, (-1)):
   if (unsorted[j] < unsorted[(j - 1)]):
    (unsorted[j], unsorted[(j - 1)]) = (unsorted[(j - 1)], unsorted[j])
    swapped = True
  for j in range(i):
   if (unsorted[j] > unsorted[(j + 1)]):
    (unsorted[j], unsorted[(j + 1)]) = (unsorted[(j + 1)], unsorted[j])
    swapped = True
  if (not swapped):
   return unsorted

def cocktail_shaker_sort ( unsorted ) : for i in range ( ( len ( unsorted ) - 1 ) , 0 , ( - 1 ) ) : swapped = False for j in range ( i , 0 , ( - 1 ) ) : if ( unsorted [ j ] < unsorted [ ( j - 1 ) ] ) : ( unsorted [ j ] , unsorted [ ( j - 1 ) ] ) = ( unsorted [ ( j - 1 ) ] , unsorted [ j ] ) swapped = True for j in range ( i ) : if ( unsorted [ j ] > unsorted [ ( j + 1 ) ] ) : ( unsorted [ j ] , unsorted [ ( j + 1 ) ] ) = ( unsorted [ ( j + 1 ) ] , unsorted [ j ] ) swapped = True if ( not swapped ) : return unsorted
pure implementation of the cocktail shaker sort algorithm in python .