Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с задачей на пайтон!

abc Ученик (14), на голосовании 3 месяца назад
Библиотечный метод
Продемонстрируйте работу метода сортировки вставками по возрастанию. Для этого выведите состояние данного массива после каждой вставки на отдельных строках. Если после рассмотрения очередного элемента массив не изменился, то его выводить не нужно. Если массив упорядочен изначально, то следует не выводить ничего.

Входные данные

На первой строке дано число N
(1≤N≤100
) — количество элементов в массиве. На второй строке задан сам массив: последовательность натуральных чисел, не превышающих 109
.

Выходные данные

Выведите строки (по количеству вставок) по N
чисел каждая.

Примеры
Ввод
2
2 1
Вывод
1 2
Ввод
4
2 1 5 3
Вывод
1 2 5 3
1 2 3 5
Голосование за лучший ответ
Артур Грант Новичок (0) 4 месяца назад
Конечно! Вот пример кода на Python, который реализует алгоритм сортировки вставками и выводит состояние массива после каждой вставки:

python

def insertion_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
print(" ".join(map(str, arr)))

# Чтение ввода
N = int(input())
arr = list(map(int, input().split()))

# Применение сортировки и вывод
insertion_sort(arr)
Укажите число элементов в массиве и сами элементы через пробел. Скопируйте этот код в среду Python и запустите его, чтобы увидеть поэтапное сортировку массива вставками. Не забудьте ввести корректные входные данные в соответствии с условием задачи.
abcУченик (14) 4 месяца назад
сорт нельзя использовать
Тайлер Сигма Профи (515) 4 месяца назад
 def insertion_sort(arr): 
for i in range(1, len(arr)):
key = arr[i]
j = i - 1
# Move elements of arr[0..i-1], that are greater than key,
# to one position ahead of their current position
while j >= 0 and key < arr[j]:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# Print the current state of the array after insertion
print(" ".join(map(str, arr)))

# Reading input
N = int(input())
array = list(map(int, input().split()))

# Perform insertion sort and print intermediate states
insertion_sort(array)
abcУченик (14) 4 месяца назад
сорт нельзя использовать
Тайлер СигмаПрофи (515) 4 месяца назад
сорян, пасту с чата жпт закинул


 def insertion_steps(arr): 
n = len(arr)
for i in range(1, n):
key = arr[i]
j = i - 1
# Перемещаем элементы arr[0..i-1], которые больше ключа, на одну позицию вперёд
while j >= 0 and arr[j] > key:
arr[j + 1] = arr[j]
j -= 1
arr[j + 1] = key
# Печатаем текущее состояние массива после вставки, если оно изменилось
if j + 1 != i:
print(" ".join(map(str, arr)))

# Чтение входных данных
N = int(input())
array = list(map(int, input().split()))

# Выполняем вставки и выводим промежуточные состояния
insertion_steps(array)


такое пойдет?
abc Ученик (14) Тайлер Сигма, да прошло спасибо вам огромное
Похожие вопросы