如何让一个递归函数的速度快的超乎你想象

  递归很明显的问题就是存在大量的重复计算,而就是这些重复记算大大增加了程序的程序的运行速度,所以优化的重点就在于这些重复记算上面。具体看代码

    for($i=0;$i<96;$i++){
      echo  recursion($i).'<hr/>';
    }
  
function recursion($n){ static $list=[];//建立一个数组保存上一次记算的结果 if(isset($list[$n])){//判断数组内是否存有这次记算的值 $res=$list[$n]; return $res; } //下面是正常递归函数 if($n<=1){ $res=1; }else{ $res= recursion($n-1)+ recursion($n-2); } $list[$n]=$res; return $res; }

  整段代码的核心就在那段数组处理上面。

转载于:https://www.cnblogs.com/xhen/p/11120607.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值