Шейкер-сортировка

Особенность шейкер-сортировки заключается в том, что в отличие

от стандартного обмена запоминается не только факт обмена, но и теку-

щая позиция обмена, а просмотры чередуются попеременно в противо-

положных направлениях в некотором интервале. монеты

На 1-м просмотре производится сравнение ключей соседних запи-

сей, например слева направо, начиная с первой позиции, и фикси-

руется позиция L последнего обмена. На 2-м просмотре сравниваются

ключи соседних записей справа налево, начиная с L-го элемента, и

фиксируется позиция R последнего обмена. В результате 2-х просмотров

запись с наибольшим ключом займет N-ю позицию, а запись с наименьшим ключом - 1-ю. Затем снова слева направо сравниваются ключи соседних записей, начиная с R-й позиции и кончая L-й и т.д. Сортировка заканчивается, если в результате очередного просмотра не производился обмен.

Структурограмма алгоритма шейкер-сортировки приведена на рис. 3.

При программировании: одна процедура - просто шаг разный.

Пример.

5, 4, 1, 2, 3

R=1, L=5, FLAG=0;

I=1; 4 5 1 2 3

I=2; 4 1 5 2 3

I=3; 4 1 2 5 3

I=4; 4 1 2 3 5;

M=4, FLAG=1;

L=4, FLAG=0;

I=4; 4 1 2 3 5

I=3; 4 1 2 3 5

I=2; 1 4 2 3 5;

M=2, FLAG=1;

R=2, FLAG=0;

I=2; 1 2 4 3 5

I=3; 1 2 3 4 5

M=3, FLAG=1;

L=3, FLAG=0;

I=3; 1 2 3 4 5;

R=3.

Найти характеристики.

Все по обменным сортировкам.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: