第章 递归与搜索上.ppt

第章 递归与搜索上.ppt

第8章 递归与搜索(上) 第8章 递归与搜索 递归是一种重要的算法思想。 递归既可以实现递推过程,也可以实现求解诸多问题的通用思路―搜索。 8.1 递归的基本思想 8.1.1 什么是递归 8.1.2 递归例题解析 结论 Hanoi(3,A,B,C)的执行过程 8.1.3 递归存在的问题 递归思想虽然很好理解,特别是对于一些可以用递推式子表示的问题。然而,使用递归的代价是十分巨大的:它会消耗大量的内存!!! 函数调用时需要用到堆栈,而堆栈的资源是十分有限的。 在例8.3中,使用递归思想求Fibonacci数列的第n项。单独求Fibonacci(20),递归调用Fibonacci( )函数就达到21891次!!!这一点可以用下面的代码验证。 8.2 递归思想在竞赛试题中的应用 例8.6 另一个Fibonacci数列(Fibonacci Again) 例8.7 分形(Fractal) * 信息学院信息技术教研室 程序设计方法及在线实践 在数学上,求n的阶乘,有两种表示方法: ① n!= n×(n-1)×(n-2)×…×2×1 ② n!= n×(n-1)! 这两种表示方法实际上对应到两种不同的算法思想。 第①种表示方法中,求n!要反复把1、2、3、…、(n-2)、(n-1)、n累乘起来,是循环的思想,要用循环结构来实现,代码如下: int n, F=1; scanf( %d, n ); f

文档评论(0)

1亿VIP精品文档

相关文档