Метод вибору

Ідея:

•знайти мінімальний елемент і поставити на місце першого (поміняти місцями з 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 )

Завдання для самостійного виконання

1114: Сортування