Сортування шелла (shell sort) - все для чайників

Ідея методу полягає в порівняння розділених на групи елементів послідовності, що знаходяться один від одного на деякій відстані. Спочатку ця відстань дорівнює d або N / 2, де N - загальне число елементів. На першому кроці кожна група включає в себе два елементи розташованих один від одного на відстані N / 2; вони порівнюються між собою, і, в разі необхідності, міняються місцями. На наступних кроках також відбуваються перевірка і обмін, але відстань d скорочується на d / 2, і кількість груп, відповідно, зменшується. Поступово відстань між елементами зменшується, і на d = 1 прохід по масиву відбувається в останній раз.

Сортування шелла (shell sort) - все для чайників


Нехай дано список і виконується його сортування методом Шелла, а в якості значень обрані.

На першому кроці упорядковано підсписки, складені з усіх елементів, що розрізняються на 5 позицій, тобто підсписки,,,,.

В отриманому списку на другому кроці знову упорядковано підсписки з віддалених на 3 позиції елементів.

Процес завершується звичайної сортуванням вставками отриманого списку.

Реалізація алгоритму на різних мовах програмування:

Схожі статті