我在这里有一些伪代码:
index = 0
function search(A, n)
if A[index] == n
return true
else
index += 1
return search(A, n)
print search ( [0, 1, 2, 3, 4 … 99], 5 )
即使使用index
变量,此函数是递归的吗?我知道我正在调用自身内部的方法(这是递归)但我不知道是否允许正确的递归在函数外部增加变量。
答案 0 :(得分:0)
是。递归函数是一个自称(或可能)的函数。它做的或不做的任何其他事情都与该定义无关。 “是”应该在代码或潜力的意义上解释,而不是在任何给定的运行中实际发生的意义。
另一方面,递归函数有很多事情是不明智的,并且依赖于控制其操作的全局变量就是其中之一。
答案 1 :(得分:0)
建议你这样说:
function search(A, n)
function aux(i)
if A[i] == n
return true
else
return aux(i+1)
return aux(0)
它的尾递归。