如何在非尾递归中转换此函数? 在此先感谢。如何在非尾递归中转换尾递归
def recursive(values,names, aux, maxim, index_of_max, i, j):
if j == len(values) and i == len(values)-1:
return order(values, names, aux, maxim, index_of_max)
elif j == len(values):
i+=1
return recursive(values,names, aux, maxim, index_of_max, i, i+1)
elif values[i] >= values[j]:
return recursive(values,names, aux, maxim, index_of_max, i, j+1)
else:
aux[j] = max(aux[i]+1, aux[j])
if aux[j] > maxim:
return recursive(values,names, aux, aux[j], j, i, j+1)
else:
return recursive(values,names, aux, maxim, index_of_max, i, j+1)
我不知道如何传递的参数在我的功能在非尾递归
你知道Python不会优化尾部调用吗? –
该函数已经是尾递归的了,因为Python中的任何函数都可以是尾递归的,因为cpython不能有效地支持尾递归。 –
无论语言是否支持TCO,该函数仍然是尾递归。 –