Ответ:
1. В определенных условиях один из алгоритмов может оказаться эффективнее остальных. Кроме того, у этих алгоритмов различная сложность реализации.
2. С целью упростить программный код.
3. Лишь изменением условия сравнения ключей сортировки. При сортировке по неубыванию ключ последующего элемента должен стать не меньше ключа текущего элемента, при сортировке по невозрастанию - наоборот.
4. На наборах небольшого объема. На упорядоченных в соответствии с требуемым порядком следования ключей сортировки. В общем там, где конкретный алгоритм в минимальной степени производит перестановки элементов.
5. Шейкер-сортировка ведётся в две стороны. На первом шаге наименьший элемент становится первым, затем - наибольший становится последним. На втором шаге на нужные места попадают второй и предпоследний элементы и т.д. Получается, что если при движении по массиву перестановки не происходят, эта часть массива считается отсортированной и исключается из рассмотрения.