Как и алгоритм сортировки прямого обмена, алгоритм шейкер – сортировки основан на сравнении и смене мест пары соседних элементов. Однако в рассматриваемом методе каждый шаг состоит из двух этапов.На первом этапе наименьший элемент неотсортированной части последовательности сдвигается к левому краю этой части, а наибольший элемент из оставшейся неотсортированной части сдвигается к правому краю этой части массива. После выполнения данных этапов неотсортированная часть массива уменьшается на два элемента. Шаги выполняются, пока не будет отсортирован весь массив.
Текстовый алгоритм:
1.Начало.
2.Присвоить переменной (слева массива) значение 2, переменной (справа массива) и переменной – значение количества элементов массива.
3.Выполнить цикл, пока имеет значение от до с шагом = -1:
а) если A(i-1) >A(i), то меняем местами эти два элемента и переменной k присваиваем значение = i.
4. Присвоить переменной t значение = k + 1.
5. Выполнить цикл, пока i имеет значение от t до r с шагом = 1:
а) если A(i-1) >A(i), то меняем местами эти два элемента и переменной k присваиваем значение = i.
6. Присвоить переменной r значение = k – 1.
7. Если t>r, то идти к пункту 8, иначе идти к пункту 3.
8. Конец.