Вопросы к Поиску с Алисой
Шейкерная сортировка эффективна на массивах с большим количеством маленьких элементов в конце, потому что она решает проблему последних элементов. blog.skillfactory.ru
Если в конце массива находится самый маленький элемент, то на каждой итерации он будет сдвигаться только на одну позицию. blog.skillfactory.ru Для решения этой проблемы шейкерная сортировка проходится по массиву два раза, меняя направление. blog.skillfactory.ru
В первом случае выполнение алгоритма идёт с начала массива, сравнивая попарно соседние элементы. blog.skillfactory.ru Если дошли до конца, то меняем направление и идём к началу. blog.skillfactory.ru В этом случае меньшие элементы перемещаются влево. blog.skillfactory.ru Алгоритм выполняется до тех пор, пока все элементы не займут свои места. blog.skillfactory.ru
Таким образом, за одну итерацию внешнего цикла минимальное и максимальное значения займут свои правильные позиции в массиве. purecodecpp.com