7.3 Метод Шелла
Основная идея сортировки по Шеллу
заключается в том, что сначала сравниваются
удаленные друг от друга элементы, а не
смежные, как это выполнялось в методе
пузырька. Это приводит к быстрому
устранению большей части неупорядоченности
и сокращает последующую работу. Интервал
между элементами постепенно сокращается
до единицы, когда сортировка фактически
превращается в метод перестановки
соседних элементов.
Обычно начальный шаг удаления выбирают
равным половине числа элементов
сортируемого массива, а затем данный
шаг после каждого прохода по массиву
уменьшают в два раза до тех пор, пока он
не станет равным единице. Пример такой
сортировки:
Начальное состояние массива
Фаза 1
(сортируются элементы, расстояние =
4)
Фаза 2
(сортируются элементы, расстояние =
2)
Фаза 3
(сортируются элементы, расстояние =
1)
|
8 23 5 65 44 33 1 6
8 23 5 65 44 33 1 6
8 23 5 65 44 33 1 6
8 23 1 65 44 33 5 6
8 23 1 6 44 33 5 65
1 23 8 6 44 33 5 65
1 23 8 6 44 33 5 65
1 23 8 6 5 33 44 65
1 23 5 6 8 33 44 65
1 6 5 23 8 33 44 65
1 6 5 23 8 33 44 65
1 6 5 23 8 33 44 65
1 6 5 23 8 33 44 65
1 5 6 23 8 33 44 65
1 5 6 23 8 33 44 65
1 5 6 8 23 33 44 65
1 5 6 8 23 33 44 65
1 5 6 8 23 33 44 65
1 5 6 8 23 33 44 65 |
Данный алгоритм можно представить
следующей блок схемой (рисунок 4).

Рисунок 4