Решение задачи Максимум в конец с Яндекс Контест

Без пояснения   Просмотров: 1216


Вам, наверное, уже известно, что сортировка выбором максимума происходит в несколько шагов.
На каждом шаге выбирается максимальный элемент и ставится на последнее место в массиве.
После этого задача сводится к аналогичной для массива, длина которого меньше на единицу.
В этой задаче Вам необходимо реализовать алгоритм, который обменивает местами максимальный элемент с последним.
При этом для детерминированности алгоритма Вам необходимо выбрать первый из максимальных элементов.

Код

def maxPos(begin, end):
    mx = a[0]
    idx = 0
    for i in range(begin, end):
        if mx < a[i]:
            mx = a[i]
            idx = i
    return idx


n = int(input())
a = list(map(int, input().split()))
if n == 0:
    raise SystemExit
t = maxPos(0, n)
a[t], a[n - 1] = a[n - 1], a[t]
print(*a)

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться



Заявка на расчет