首页 > 代码库 > 递归-基础知识总结------彭记(06)
递归-基础知识总结------彭记(06)
递归
-在程序中,递归就是函数自己直接或者间接调用自己。
-就递归而言最重要的就是跳出结构,因为跳出了才可以有结果。
化归思想:
-将一个问题由难化易,由繁化简 ,由复杂化简单的过程称为化归,它是转化和归结的简称。
-递归思想就是将一个问题转换为一个已解决的问题来实现
-假如有一个函数‘f‘,如果它是递归函数的话,那么也就是说函数体内的问题还是转换为‘f‘的形式。
例如:求1~100的和?
function foo(n){
return n +foo(n-1);
}
上面就是利用了化归思想:
-将求100 转换为求99
-将求99转换为求98
......
-将求2 转换为求1
-求1结果就是1
function foo(n){
if(n==1){
return 1;
}
return n+foo(n-1);
}
递归实现汉诺塔
<script> var index =1; /*每一次移动只能移动一个元素,将这个编号的元素从from和位置移动到to的位置*/ function move(n,from,to){ console.log(‘第‘ + (index++) + ‘次,将第‘ + n + ‘个元素从‘ + from + ‘位置移动到‘ + to + ‘位置‘); } /*将指定数量的元素从from位置,通过temp空位移动到to位置*/ function hanNouTa(n,from,temp,to){ if(n == 0){ return; } /*先将上面的其它元素全部移到到空位上*/ hanNouTa(n-1,from,to,temp); /*将最后一元素移动到指定的目标位置上*/ move(n,from,to); /*通过空位将刚才的n-1个元素移动到目标位置上*/ hanNouTa(n-1,temp,from,to); } hanNouTa(4,‘A‘,‘B‘,‘C‘); </script>
递归-基础知识总结------彭记(06)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。