递归算法与递推算法
1 使用算法的前提:已知的一组数据,具有一定规律
2 以上两种代码的含义:
① 递归算法:在自身的方法体中,再次调用自身的方法
② 递推算法:使用循环语句(一般为for循环)对指定代码完成重复的操作
3 递推代码实现
public class play {
// 例子 递推计算阶乘
public int method(int num){
int result=1;
for (int i = num; i > 0; i--) {
result *=i;
}
return result;
}
}
4 递归代码实现
public class play {
// 例子 递归计算阶乘
public int method(int num){
if(num==1){
return 1;
}
return num * method(num-1);
}
}
5 实际开发中,使用递归和递推哪个更好?
① 当操作次数较少的时候,推荐使用 递归方式,编写更简单
② 当操作次数较多时,建议使用递推方式,更加节省栈内存空间
③ 递推方式更加节省空间,递归方式实现原理是方法本身再次调用自身执行,当且仅当执行到某一确定值的时候,才能计算出结果,不然就一直向下计算;就会出现多个方法没法正常结束,会造成栈内存溢出