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

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

    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; }

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

posted @ 2019-07-02 14:48  yunhenX  阅读(1106)  评论(0编辑  收藏  举报