递归与循环的区别
来源:互联网 发布:js特效 编辑:程序博客网 时间:2024/05/20 18:16
理论上而言,所有递归程序都可以用非递归程序来实现。循环方法是所有递归到非递归的转换中最理想的方法,可以将开销减少到最小。不过也是分析起来最复杂的,对于简单的递归可以用这样的方法来处理。为了理解方便,下面是用一个最简单的例子:求N的阶乘。递归的方法:int Factorial(int n){ if( n > 1){ return n*Factorial(n-1);//递归函数调用 } else if(n == 1){ return 1; //递归出口 } else{ return ERROR;//报告输入错误 }} 转为非递归的方法:Factorial(int n){ int k = 1 ;//增量 int t = 1 ;//临时结果 while(k!=n){ t*=k; k++; } return t;}
递归坏处:由于递归需要系统堆栈,所以空间消耗要比非递归代码要大很多。而且,如果递归深度太大,可能系统栈溢出。
0 0
- 循环与递归的区别
- 循环与递归的区别
- 循环与递归的区别
- 递归与循环的区别
- 循环与递归的区别
- 循环与递归的区别
- 循环与递归的区别
- 递归与循环的区别和联系
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 循环(迭代)与递归的区别
- 专业术语:迭代、循环、遍历与递归的区别
- 循环和递归的区别
- r0遍历系统进程方法总结
- POJ A Knight's Journey(2488) -dfs&打印路径
- duilib创建的窗体添加边框阴影效果
- ORACLE 查看用户密码修改时间
- poj1252Euro Efficiency
- 递归与循环的区别
- hdu 4268 Alice and Bob(multiset)
- 考试题目分析
- Android 手机定位慢的解决方法
- android 自定义控件
- hdu 4893 Goffi and GCD
- Theano学习1
- spring整合memcached注意事项-poolname
- Linux下DIR,dirent,stat等结构体详解