Найти в Дзене
programmer's notes (python and more)

Программирование на языке Python. Алгоритм сортировки Шелла

Доброго времени суток, читатели, зрители моего канала programmer's notes, любители языка Python. Не забывайте подписываться и писать свои
комментарии к моим статьям и видео.

Сортировка Шелла на языке Python

Сортировка Шелла является улучшением (обобщением) сортировки вставками. Метод сортировки вставками осуществляется с шагом единица. В сортировке Шелла можно взять любой шаг. При этом после каждого прохода длина шага уменьшается. Это происходит пока шаг не станет равным нулю. Тут важно обратить на две вещи:

1. Начальная значение шага. Можно подобрать его оптимальное значение чисто эмпирически. Либо как-то связать его с длиной сортируемого массива. Но последнее это уже работа для математиков.

2. По каком закону уменьшать значение шага. Можно уменьшать на единицу, можно делить пополам, как в программе ниже, можно делать это каким-то другим способом. И опять же можно эмпирически поискать оптимальный механизм.

Ниже представлена программа, реализующая сортировку Шелла

Текст программы см. ниже
Текст программы см. ниже
primer153.py

Ну, пока всё. Используем сортировку Шелла. Да, если вам не известен оператор ':=' ('моржовый' оператор) см. здесь.

Предыдущая статья о сортировке...

Следующая статья о сортировке...

Хорошего программирования. Оставляйте свои комментарии, не забывайте про лайки и подписывайтесь на мой канал programmer's notes.

Я вам так скажу, читайте мануалы и будем вам программистское счастье
Я вам так скажу, читайте мануалы и будем вам программистское счастье