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