递归、分治、动态规划、回溯.pptVIP

  • 18
  • 0
  • 约1.78万字
  • 约 73页
  • 2017-08-15 发布于江西
  • 举报
递归、分治、动态规划、回溯.ppt

递归、分治、动态规划与回溯 递归与分治基本原理 递归与分治基本原理 递推与递归 递归与递推表面看来是相逆的过程,其实也是相似的,最终的计算都是从小算到大。 递推的使用环境要求高导致了递推的高效性,递推没有重复计算什么数据,保持了高效。 递归大多数会重复计算子问题,导致时间浪费,所以一般不要使用过深的递归,甚至会空间溢出。 斐波那契数列(Fibonacci),对于f(30),如果使用递归则需要运行1664079次,而递推只需30次就可以了,速度悬殊。 递归: long f (long n) { if i3 then return 1; else f(i-1)+f(i-2); } 递归的应用范围 4.回溯 规模较小的问题用回溯解决比较自然。注意递归前后要保证现场的保存和恢复,即正确的转化问题。 5.动态规划 动态规划的子问题重叠性质与递归有某种相似之处。递归+动态修改查表是一种不错的建立动态规划模型的方法。 树、图、排序等符合递归子问题思想的结构 树、图等数据结构本身就是递归结构,因此当然是使用递归来处理。 7.其他 例如排列组合等,很杂的。 递归举例 例1 阶乘函数 阶乘函数可递归地定义为: 递归举例 例2 Fibonacci数列 无穷数列1,1,2,3,5,8,13,21,34,55,…,被称为Fibona

文档评论(0)

1亿VIP精品文档

相关文档