Я, как ученик в классе, решил написать программу, которая добавляет новых учеников в наш упорядоченный по убыванию массив ростов без использования сортировки данных.
Для начала, мы знаем, что в классе учатся N учеников, причем 5 < N < 25. В первой строке ввода я ввел число N. Затем, я ввел два числа A и B, которые соответствуют росту двух новых учеников, поступивших в класс в начале учебного года. Далее, в третьей строке ввода я ввел N чисел, которые представляют собой уже имеющиеся значения ростов учеников в упорядоченном по убыванию массиве. Задача программы заключается в том, чтобы добавить росты новых учеников в массив, при этом сохраняя порядок сортировки по убыванию. Я использовал следующий алгоритм⁚ 1. Создать пустой массив с длиной N 2. 2. Скопировать значения из исходного массива в новый массив. 3. Найти место, куда нужно вставить новый рост A в новом массиве. Для этого пройтись по новому массиву в обратном порядке до тех пор, пока значение роста из исходного массива меньше, чем A. 4. Вставить новый рост A на найденное место в новом массиве. 5. Найти место, куда нужно вставить новый рост B в новом массиве. Для этого пройтись по новому массиву в обратном порядке до тех пор, пока значение роста из исходного массива меньше, чем B. 6. Вставить новый рост B на найденное место в новом массиве. 7. Вывести полученный массив ростов учеников. Вот программа на языке Python, которую я написал⁚ python N int(input) A, B map(int, input.split) heights list(map(int, input.split)) new_heights heights [0, 0] # создаем новый массив размером N 2 и заполняем его нулями index_a N # индекс для вставки роста A index_b N 1 # индекс для вставки роста B
# находим место для вставки роста A while index_a > 0 and new_heights[index_a ౼ 1] < A⁚ new_heights[index_a] new_heights[index_a ౼ 1] index_a - 1 # вставляем рост A на найденное место new_heights[index_a] A # находим место для вставки роста B while index_b > 0 and new_heights[index_b ౼ 1] < B⁚ new_heights[index_b] new_heights[index_b ౼ 1] index_b - 1 # вставляем рост B на найденное место new_heights[index_b] B # выводим полученный массив for height in new_heights⁚ print(height, end' ') Теперь наш упорядоченный по убыванию массив ростов учеников содержит новых учеников A и B, и порядок сортировки сохранен.