Задано масив елементів R1,R2,…,Rn. Даний алгоритм реорганізує масив у висхідному порядку, тобто для його елементів буде мати місце співвідношення Ri < Rj- для всіх i,j=1..n.
Алгоритм S.
S1. Цикл за індексом проходження. Повторювати кроки S2 - S 4 при i=1..n-1.
S2. Зафіксувати перший поточний елемент: встановити R0 = Ri.
S3. Пошук найменшого значення min Rj для елементів з індексом j=i+1, i+2,…,n
S4. Перестановка елементів. Якщо min Rj < R0 та j!=i, то min Rj <-> R0.
S5. Кінець. Вихід.
З алгоритму S видно, що для сортування потрібно виконати n-1 проходження послідовності елементів. Одним проходженням називаємо пошук елементу з наступним найменшим значенням.
Проведемо невеликий аналіз алгоритму. При першому проходженні, коли знаходиться елемент з найменшим значенням, порівнюється п-1 елементів. У загальному випадку при i-му проходженні у процесі сортування порівнюється n-і елементів. Тоді загальна кількість порівнянь, які треба виконати для сортування масиву із n елементів буде:
Σ (n-i) = (n-1) + (n-2) +…+ (n-n+1) = 1/2n(n-1), i=1..n-1
|
|
Таким чином, ефективність алгоритму пропорційна величині n2 (говорять, що алгоритм S має ефективність О( n2 )).
Кількість перестановок елементів залежить від того, як на початку був відсортований масив. Але, оскільки при одному проходженні у даному алгоритмі потрібно виконати не більш як одну перестановку, максимальна кількість перестановок при такому сортуванні дорівнює величині n-1.