Как работает этот алгоритм поиска максимального числа?
def max(a):
if len(a)==2:
return a[0] if a[0]>a[1] else a[1]
sub_max=max(a[1:])
return a[0]if a[0]>sub_max else sub_max
print(max([10,7,5,6]))
Вроде как тут строится "пирамидка" и на 3 шаге программы должна прерываться и выводиться наибольшее число ,
которое находилось на вершине "пирамиды". Но выводится 10 . Программа взята из учебника и она верная , просто я не понимаю последовательность шагов компьютера .

Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
return выходит не из всех уровней рекурсии, а только из одного. Возвращаемое значение попадает в присваивание в месте вызова и вычисления продолжаются.
А функция ищет максимальное значение в массиве, с чем вполне справляется.