Код:
def sort_odd_even(arr):
# Создаем два списка: один для элементов с нечетными номерами, другой - для четных
odd_index_elements = []
even_index_elements = []
# Заполняем эти списки в зависимости от индекса (считая с 1)
for i in range(len(arr)):
if (i + 1) % 2 != 0: # нечетный номер
odd_index_elements.append(arr[i])
else: # четный номер
even_index_elements.append(arr[i])
# Сортируем элементы с нечетными номерами по возрастанию
odd_index_elements.sort()
# Сортируем элементы с четными номерами по убыванию
even_index_elements.sort(reverse=True)
# Объединяем отсортированные списки обратно в исходный массив
sorted_arr = []
odd_index = 0
even_index = 0
for i in range(len(arr)):
if (i + 1) % 2 != 0: # нечетный номер
sorted_arr.append(odd_index_elements[odd_index])
odd_index += 1
else: # четный номер
sorted_arr.append(even_index_elements[even_index])
even_index += 1
return sorted_arr
# Пример использования:
arr = [5, 3, 8, 6, 2, 7, 4, 1]
sorted_arr = sort_odd_even(arr)
print("Отсортированный массив:", sorted_arr)