如何用PYTHON递归算法找出列表中最大数
1、打开JUPYTER NOTEBOOK,新建一个PY文档。

2、list = [1, 3, 9, 7, 4]
假设有个列表,我们需要找到最大的数。

3、max(list)
实际上内置的这个函数max是可以解决这个问题的,但是我们需要知道实际程序是如何执行的。

4、max = list[0]
for i in list:
if i > max:
max = i
print(max)
用FOR循环也是可以解决这个问题的。

5、list = [1, 3, 9, 7, 4]
def max(list):
用递归的方式解决我们可以先设置一个函数。

6、list = [1, 3, 9, 7, 4]
def max(list):
if list[0] > max(list[1:]):
return list[0]
else:
return max(list[1:])
我们首先要进行递归的对比,从第一个和后面的进行对比。

7、list = [1, 3, 9, 7, 4]
def max(list):
if len(list) == 2:
if list[0] > list[1]:
return list[0]
else:
return list[1]
if list[0] > max(list[1:]):
return list[0]
else:
return max(list[1:])
我们要设置一下暂停的条件,只剩下两个元素的时候,我们要进行最后的对比。

8、list = [1, 3, 9, 7, 4]
def max(list):
if len(list) == 2:
if list[0] > list[1]:
return list[0]
else:
return list[1]
if list[0] > max(list[1:]):
return list[0]
else:
return max(list[1:])
max(list)
测试一下结果是正确的。

9、list = [1, 3, 9, 7, 4]
def max(list):
if len(list) == 2:
return list[0] if list[0] > list[1] else list[1]
return list[0] if list[0] > max(list[1:]) else max(list[1:])
max(list)
实际上可以简写一下流程。

10、和 [3, 9, 7, 4] 对比
3 和 [9, 7, 4] 对比
9 和 [7, 4] 对比
7 和 4 对比
7比4大,返回7
7比9小,返回9
3比9小,返回9
1比9小,返回9
这是实际的运算过程。
