1.利用递归求序列S的最大值
def search_max(S, n):
''' S:序列
n:序列长度
'''
if n == 1:
return S[n-1]
else:
max_s = search_max(S, n-1)
if max_s > S[n-1]:
return max_s
else:
return S[n-1]
2.利用递归求序列S最大,最小值
def search_min_max(S, n):
''' S:序列
n:序列长度
'''
if n == 1:
return S[n-1], S[n-1]
else:
min_s, max_s = search_min_max(S, n-1)
if S[n-1] > max_s:
return min_s, S[n-1]
elif S[n-1] < min_s:
return S[n-1], max_s
else:
return min_s, max_s
- 利用递归求解n个不同元素的全排列
def pailie(elements, n):
result = []
if len(elements) == 1:
result = list(elements)
return result
else:
temp_result = pailie(list(elements[0:n-1]), n-1)
for i in range(len(temp_result)):
for j in range(len(list(temp_result[i])) + 1):
new_list = list(temp_result[i])
new_list.insert(j, elements[n-1])
result.append(new_list)
return result