Метод вибору
Ідея:
•знайти мінімальний елемент і поставити на місце першого (поміняти місцями з A[1])
•із решти знайти мінімальний елемент і поставити на друге місце (поміняти місцями з A[2]), і т.д.
Приклад
Задано масив А із 10 випадкових натуральних чисел, впорядкуйте його за допомогою сортування вибором
# Заповнюємо список з 10 елементів випадковими числами від 1 до 99 і виводимо невідсортований список на екран.
from random import randint
N = 10
a = [ ]
for i in range ( N ) :
a. append ( randint ( 1 , 99 ) )
print ( a )
# У циклі змінна i зберігає індекс комірки, в яку записується мінімальний елемент.
# Спочатку це буде перша комірка.
i = 0
# N - 1, так як останній елемент обмінювати вже не треба.
while i < N - 1 :
# ПОШУК МІНІМУМУ
# Спочатку треба знайти мінімальне значення на зрізі від i до кінця списку.
# Змінна m буде зберігати індекс комірки з мінімальним значенням.
# Спочатку припускаємо, що в комірці i міститься мінімальний елемент.
m = i
# Пошук починаємо з комірки наступної за i.
j = i + 1
# Поки не дійдемо кінця списку,
while j < N:
# будемо порівнювати значення комірки j зі значенням комірки m.
if a [ j ] < a [ m ]:
# Якщо в j значення менше, ніж в m, збережемо в m номер знайденого на даний момент мінімуму.
m = j
# Перейдемо до наступної комірки.
j += 1
# ОБМІН ЗНАЧЕНЬ
# В комірку i записується знайдений мінімум, а значення з комірки i переноситься на старе місце мінімуму.
a [ i ] , a [ m ] = a [ m ] , a [ i ]
# Перехід до наступної необробленої комірки
i += 1
# Виведення відсортованого списку
print ( a )