Помощь - Поиск - Пользователи - Календарь
Полная версия: Сортировка Шелла
Форум «Всё о Паскале» > Разработка ПО, алгоритмы, общие вопросы > Алгоритмы
-=АнЮтА=-
Дело то в том,что мы просто попарно сравниваем эл-ты отстоящие др. от др. на определённый шаг и всё. А как мне помнится, мы должны из массива вытащить подмассив, его отсортировать и загнать опять в основной массив.
К примеру:
3 2 1 4 7 2 3 6 18 11 9 5 3 - отсоритрованный массив после шага 6
Берём шаг равный 3 и вытаскиваем подмассив:
3 4 3 11 3
Его сортируем и получаем:
3 3 3 4 11
Заносим в основной массив:
3 2 1 3 7 3 6 18 4 9 5 11
(потом переходим к следущему эл-ту(в нашем случае он равен 2) и опять вытаскиваем подмассив)
Вот правильный алгоритм сортировки. - цитата из темы форума

Меня тоже очень заинтересовал метод сортировки Шелла, но мне никак не понятно - если мы имеем шаг допустим 3, то ведь берем не только пары элементов 3 4 3 11 3, а как же 2 7 6 и 9, между ними ведь тоже шаг 3, ведь массив будет не однозначен с такми шагом. Или я недопонимаю? Подскажите пожалуйста, как именно происходит эта сортировка, мы все сравниваем элементы с таким шагои или которые только по порядку вытащим? У меня сложилось такое впечатление, что только которые "вытащатся " по порядку)
SkIv
Дело в том что шаг не постоянный, допустим сначала у тебя он равен три, начинаеш сравнивать первый с четвертым, четвертый с седьмым и т.д., потом делаеш тоже сомое но со второго элемента, далее с третьего для шага три закончили, теперь уменьшаем шаг (например на один) и делаем тоже самое.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.