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

Помогите решить задачу на python

Саша Жарков Ученик (73), открыт 4 дня назад
Напишите программу, которая сортирует по возрастанию все элементы массива с нечётными номерами, а все элементы с чётными номерами – по убыванию. Нумерация элементов массива начинается с единицы.
4 ответа
Rok Akw Профи (762) 4 дня назад
в чем проблема в два массива закинуть чет и нечет а потом сортнуть по разному
Саша ЖарковУченик (73) 4 дня назад
в падлу
ИванГуру (3210) 4 дня назад
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
Иван Гуру (3210) 4 дня назад
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
Электрия Ученик (138) 4 дня назад
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
Вертолётов 625 Мудрец (13288) 4 дня назад
Код:
 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)
Похожие вопросы