在递归函数中使用静态变量来减少开销

时间:2016-05-14 20:13:38

标签: c++ algorithm recursion static

静态变量递归算法的使用有助于大幅减少开销吗?或者它是可以忽略的?

例如,在回溯算法中,将解决方案向量作为静态变量会使算法比将其作为参数更好吗?

或者从不使用静态变量只是一个经验法则?

1 个答案:

答案 0 :(得分:0)

使用静态变量,但它不会为您节省很多。每次进行递归调用时,number of things have to go on the stack:返回地址,参数,函数的所有新分配变量。如果将变量作为参数而不是静态放入,则每次递归调用只分配一个值。这意味着即使在最坏的情况下,它也不会使内存增加一倍。