cocktail shaker sort

A bi-directional bubble sort. Passes alternate between ascending through array indexes, pushing the largest item to the bottom; and descending through array indexes, pushing the smallest item to the top.

[Performace vs plain bubble?]