如果我的功能被归类为递归,则不确定

时间:2014-10-29 16:43:33

标签: recursion pseudocode

我在这里有一些伪代码:

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变量,此函数是递归的吗?我知道我正在调用自身内部的方法(这是递归)但我不知道是否允许正确的递归在函数外部增加变量。

2 个答案:

答案 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)

它的尾递归。

相关问题