Ответ:
Отчёт: сравнение алгоритмов поиска наибольшего числа
Цель работы: сравнить три алгоритма, решающие одну и ту же задачу.
Задача: по трём введённым целым числам вывести наибольшее. Поскольку исходное задание не задаёт конкретную задачу, это условный пример.
Алгоритм 1 — встроенная функция max.
a, b, c = map(int, input().split())
print(max(a, b, c))Преимущество — краткость и наглядность. Сравнения выполняет встроенная функция. Этот вариант удобен, если применение max разрешено.
Алгоритм 2 — последовательные сравнения.
a, b, c = map(int, input().split())
maximum = a
if b > maximum:
maximum = b
if c > maximum:
maximum = c
print(maximum)Переменная maximum хранит наибольшее из уже рассмотренных чисел. Алгоритм выполняет два сравнения и легко обобщается на любое количество чисел с помощью цикла.
Алгоритм 3 — вложенные условные операторы.
a, b, c = map(int, input().split())
if a > b:
maximum = a
else:
maximum = b
if c > maximum:
maximum = c
print(maximum)Сначала выбирается большее из первых двух чисел, затем оно сравнивается с третьим. Для трёх значений запись понятна, но для большего набора вложенные условия менее удобны.
Итоги сравнения. Все три программы находят наибольшее число, в том числе при равных значениях. Для трёх чисел каждая требует не более двух сравнений и постоянной дополнительной памяти. Встроенная функция обеспечивает краткую запись, а последовательные сравнения наглядно показывают принцип алгоритма и удобны для расширения.
Заключение: для учебной реализации, которую можно обобщить на произвольное количество чисел, наиболее подходящ алгоритм последовательных сравнений. Если важнее краткость и встроенные функции разрешены, следует выбрать max.
