浅谈递归与迭代的区别及各自的优缺点
程序调用自身称为递归,利用变量的原值推出新值称为迭代。
这是递归
public static int m1(int n){
if(n>1){
return n+m1(n-1);
}else{
return 1;
}
}
这是迭代
public static int m2(int n){
int i=0;
int s=0;
for(i=1;i<n;i++){
s+=i;
}
return s;
}
递归的优点
大问题转化为小问题,可以减少代码量,同时代码精简,可读性好;
缺点
递归调用浪费了空间,而且递归太深容易造成堆栈的溢出。
迭代的优点
代码运行效率好,因为时间只因循环次数增加而增加ÿ