迭代和递归

作者: bkbtp 分类: 前端 发布时间: 2018-05-22 11:50

递归的优缺点

程序调用自身称为递归。递归的优点代码精简,可读性好, 缺点就是,递归调用浪费了空间,而且递归太深容易造成堆栈的溢出,也存在冗余计算等问题。

迭代的优缺点

利用变量的原值推出新值,输出作为输入,再次进行处理称为迭代。迭代的优点代码运行效率好,因为时间只因循环次数增加而增加,而且没有额外的空间开销, 缺点就是代码不如递归简洁。

两种方式实现阶乘

迭代的方式:

function iteration(x){
   var sum=1; 
   for(x; x>=1; x--){
       sum = sum*x;
   };
   console.log(sum);
}

递归的方式:

function recursion(x){
   if(x>1){
       return x*recursion(x-1);
   }else{
       return 1;
   }
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。