from random import randint
N = 10
arr = []
for i in range(N):
arr.append(randint(1, 99))
print(arr)
# В цикле переменная i хранит индекс ячейки,
# в которую записывается минимальный элемент.
# Сначала это будет первая ячейка.
i = 0
# N - 1, так как последний элемент
# обменивать уже не надо.
while i < N - 1:
# ПОИСК МИНИМУМА
# Сначала надо найти минимальное значение
# на срезе от i до конца списка.
# Переменная m будет хранить индекс ячейки
# с минимальным значением.
# Сначала предполагаем, что
# в ячейке i содержится минимальный элемент.
m = i
# Поиск начинаем с ячейки следующей за i.
j = i + 1
# Пока не дойдем конца списка,
while j < N:
# будем сравнивать значение ячейки j,
# со значением ячейки m.
if arr[j] < arr[m]:
# Если в j значение меньше, чем в m,
# сохраним в m номер найденного
# на данный момент минимума.
m = j
# Перейдем к следующей ячейке.
j += 1
# ОБМЕН ЗНАЧЕНИЙ
# В ячейку i записывается найденный минимум,
# а значение из ячейки i переносится
# на старое место минимума.
arr[i], arr[m] = arr[m], arr[i]
# ПЕРЕХОД К СЛЕДУЮЩЕЙ НЕОБРАБОТАННОЙ ЯЧЕЙКЕ
i += 1
# Вывод отсортированного списка
print(arr)
Пример выполнения:
[77, 46, 11, 89, 48, 14, 67, 73, 22, 26]
[11, 14, 22, 26, 46, 48, 67, 73, 77, 89]
Достарыңызбен бөлісу: |