


Помогите решить задачу на python
Напишите программу, которая сортирует по возрастанию все элементы массива с нечётными номерами, а все элементы с чётными номерами – по убыванию. Нумерация элементов массива начинается с единицы.
Код:
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)
def sort_array(arr):
odds = sorted(arr[::2])
evens = sorted(arr[1::2], reverse=True)
result = []
o, e = 0, 0
for i in range(len(arr)):
if i % 2 == 0:
result.append(odds[o])
o += 1
else:
result.append(evens[e])
e += 1
return result
def sort_array(arr):
odds = sorted(arr[::2])
evens = sorted(arr[1::2], reverse=True)
result = []
o, e = 0, 0
for i in range(len(arr)):
if i % 2 == 0:
result.append(odds[o])
o += 1
else:
result.append(evens[e])
e += 1
return result
в чем проблема в два массива закинуть чет и нечет а потом сортнуть по разному