Answer
t.me/python_tesstОтвет:
[11, 19, 61, 115, 218]
Объяснение:
Сортировка вставками (Insertion Sort). Он перебирает несортированный сегмент и вставляет просматриваемый элемент в правильную позицию отсортированного списка. Предполагается, что первый элемент списка отсортирован. Затем мы переходим к следующему элементу, назовем его х. Если x больше первого элемента, мы оставляем его как есть. Если x меньше, мы копируем значение первого элемента во вторую позицию и затем устанавливаем первый элемент в x. Когда мы переходим к другим элементам несортированного сегмента, мы непрерывно перемещаем более крупные элементы в отсортированном сегменте вверх по списку, пока не встретим элемент меньше x, или не достигнем конца отсортированного сегмента, а затем поместим x в его правильное положение.
Код:
def insertion_sort(nums): # Начнем со второго элемента, так как мы предполагаем, что первый элемент отсортирован for i in range(1, len(nums)): item_to_insert = nums[i] # И сохранить ссылку на индекс предыдущего элемента j = i - 1 # Переместить все элементы отсортированного сегмента вперед, если они больше, чем элемент для вставки while j >= 0 and nums[j] > item_to_insert: nums[j + 1] = nums[j] j -= 1 # Вставляем элемент nums[j + 1] = item_to_insert # Проверяем, что это работает random_list_of_nums = [19, 11, 115, 218, 61] insertion_sort(random_list_of_nums) print(random_list_of_nums)