Алгоритм сортування методом вибору починається з порівняння перших двох елементів масиву та їх заміни у разі потреби. Наприклад, якщо ви хочете відсортувати елементи масиву в порядку зростання і якщо перший елемент більший за другий, вам потрібно поміняти місцями елементи. Але, якщо перший елемент менший за другий, елементи залишаються у своїй послідовності. Потім знову перший елемент і третій елемент порівнюються та змінюються місцями, якщо це необхідно. Цей процес триває доти, доки не буде порівняний перший і останній елемент масиву. Це завершує перший крок вибору сортування.
Якщо потрібно відсортувати n елементів, процес, згаданий вище, слід повторити n-1 раз, щоб отримати потрібний результат. Для підвищення продуктивності на другому кроці порівняння починається з другого елемента, тому що після першого кроку потрібне число автоматично поміщається в перший. Аналогічно, третьому етапі порівняння починається з третього елемента тощо. У разі сортування в порядку зростання найменший елемент буде першим, а у разі сортування за спаданням, найбільший елемент буде першим.
Розглянемо малюнку роботу алгоритму сортування шляхом вибору.
Програма на C для сортування елементів з використанням алгоритму сортування методом вибору
#include <stdio.h> int main() { int data[100],i,n,steps,temp; printf("Enter the number of elements to be sorted: "); scanf("%d",&n); for(i=0;i<n;++i) { printf("%d. Enter element: ",i+1); scanf("%d",&data[i]); } for(steps=0;steps<n;++steps) for(i=steps+1;i<n;++i) { if(data[steps]>data[i]) /* Чтобы отсортировать в порядке убывания, измените> на <. */ { temp=data[steps]; data[steps]=data[i]; data[i]=temp; } } printf("In ascending order: "); for(i=0;i<n;++i) printf("%d ",data[i]); return 0; }
Enter the number of elements to be sorted: 5 1. Enter element: 12 2. Enter element: 1 3. Enter element: 23 4. Enter element: 2 5. Enter element: 0 In ascending order: 0 1 2 12 23
Примітка:
хоча ця програма написана на C, алгоритм сортування вибору можна аналогічним чином використовувати й іншою мовою програмування.
Алгоритм сортування вибору простий у використанні, але є інші алгоритми сортування, які працює краще, ніж сортування вибору. Зокрема, сортування вибору не повинно використовуватись для сортування великої кількості елементів, якщо продуктивність має значення у цій програмі.