静态变量递归算法的使用有助于大幅减少开销吗?或者它是可以忽略的?
例如,在回溯算法中,将解决方案向量作为静态变量会使算法比将其作为参数更好吗?
或者从不使用静态变量只是一个经验法则?
答案 0 :(得分:0)
使用静态变量,但它不会为您节省很多。每次进行递归调用时,number of things have to go on the stack:返回地址,参数,函数的所有新分配变量。如果将变量作为参数而不是静态放入,则每次递归调用只分配一个值。这意味着即使在最坏的情况下,它也不会使内存增加一倍。