Программа будет сортировать список методом выбора (Selection sort).
Суть сортировки
- В неотсортированном подмассиве ищется локальный максимум (минимум).
- Найденный максимум (минимум) меняется местами с последним (первым) элементом в подмассиве.
- Если в массиве остались неотсортированные подмассивы — смотри пункт 1.
Шаги к правильному решению
- Создадим функцию
selection_sort
, которая принимает на вход список. - Внутри функции создадим цикл с переменной
i
, которая будет исчисляться с 0 до (длины списка - 1
) - Создадим переменную
smallest = i
. - Создадим внутренний цикл с переменной
j
отi + 1
до (длины списка - 1
). - Внутри этого цикла, если
j
-элемент (элемент под индексомj
) меньше, чем элемент с индексомsmallest
, тогда устанавливаемsmallest = j
. - После завершения внутреннего цикла меняем местами элементы под индексами i и smallest.
Исходный код для сортировки выбором:
def selection_sort(alist): for i in range(0, len(alist) - 1): smallest = i for j in range(i + 1, len(alist)): if alist[j] < alist[smallest]: smallest = j alist[i], alist[smallest] = alist[smallest], alist[i] alist = input('Enter the list of numbers: ').split() alist = [int(x) for x in alist] selection_sort(alist) print('Sorted list: ', end='') print(alist)