递归算法的非递归定义 * 并非所有递归算法都有非递归定义。 Ackerman函数 Ackerman函数A(n, m)有两个独立的整型变量m≥0和 n≥0,定义如下: 当一个函数及它的一个变量是由函数自身定义时,称这个函数是双递归函数。 递归算法的非递归定义 Ackerman函数 * A(n,m)的自变量m的每一个值都定义了一个单变量函数: m=0时,A(n,0)=n+2 m=1时,A(n,1)=A(A(n-1,1),0)=A(n-1,1)+2,A(1,1)=2故A(n,1)=2n m=2时,A(n,2)=A(A(n-1,2),1)=2A(n-1,2),A(1,2)=A(A(0,2),1)=A(1,1)=2,故A(n,2)= 2n。 m=3时,类似的可以推出 A(n,3)= m=4时,A(n,4)的增长速度非常快,以至于没有适当的数学式子来表示这一函数。 经验分析法 数学远远不是万能的,即使许多貌似简单的算法,有时也很难用数学的精确性和严格性来分析,尤其是在做平均效率分析的时候。 除了可以对算法的效率做数学分析以外,另一种主要方法是对算法的效率做实验和经验分析。 * 经验分析法 * 算法可视化 * Summary 2-算法效率分析基础 陆伟 College of Software and Microelectronics 算法设计与分析 Introductio
原创力文档

文档评论(0)