首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

回溯法是咋回事

2012-06-19 
回溯法是怎么回事和递归感觉区分不开来我举个例子f(n)的求解f(n)f(n-1)*n(n2)f(1)1递归求解int f(int

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

我举个例子

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里面从上到下列出的对应从里层到外层的函数调用历史)一遍。”是理解递归函数工作原理的不二法门!
递归函数关注以下几个因素
·退出条件
·参数有哪些
·返回值是什么
·局部变量有哪些
·全局变量有哪些
·何时输出
·会不会导致堆栈溢出

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

热点排行