读书人

回溯法是咋回事

发布时间: 2012-06-19 14:45:20 作者: rapoo

回溯法是怎么回事
和递归感觉区分不开来

我举个例子

f(n)的求解

f(n)=f(n-1)*n; (n>=2)

f(1)=1


递归求解

int f(int n)
{
if(n==1)
return 1;

return f(n-1)* n;

}


回溯怎么求解



[解决办法]
“给定一个小点的输入,完整单步跟踪(同时按Alt+7键查看Call Stack里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

[解决办法]
回溯法只是习惯用递归去解决问题而已。但不代表是递归
[解决办法]
俺是新手,但回溯法给我感觉是解决迷宫和一个箱子装不同体积的解决方法。和递归有很大区别。阶乘用不了回溯法吧,就像不是所有算法都能用递归解决一样

读书人网 >C语言

热点推荐