ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## 逻辑算法 **基本概念** * 一个问题可以有多种算法,每种算法都不同都效率 * 一个算法具有5个特征:`有穷性`、`确切性`、`输入项`、`输出项`、`可行性` **算法评定** * 算法分析的目的在于选择适合算法和改进算法。 * 一个算法的评价主要从时间复杂度和空间复杂度来考虑 **** ## 递归 >1. 基准情形: 必须有某些基准情形,它无需递归即可解出。 >2. 不断推进: 对于需要递归求解的情形,每次递归调用都必须使得求解状况朝着基准情形推进。 >3. 设计法则: 假设所有的递归调用都能运行。 >4. 合成效益法则:在求解一个问题的同一实例时,切勿在不同的递归调用中做重复性工作。 ## 斐波那契数列 * 1,1,2,3,5,8,13。。。 ``` function fun($n){ if($n == 1 || $n == 2){ return 1; } return fun($n-1)+fun($n-2); } // 优化后的递归 斐波那契数列 function fun($n,$a = 1, $b = 1 ){ if($n>=3){ //将本次计算的结果和上次计算的结果作为参数传入下一次计算中,以减少重复计算。第四法则 return fun($a+$b, $a, $n-1); } return $a; } ```