第二部分递归与分治课程.pptVIP

  • 8
  • 0
  • 约1.43万字
  • 约 57页
  • 2016-12-08 发布于江苏
  • 举报
计算机算法设计与分析 第二章 递归与分治 递归的概念 简单地说,递归就是用自己来定义自己。 一般地说,一个递归过程P可以表示为基语句S(不含P)和P自身的组合β: P ? β(S, P) 这样的表示包含了过程不终止的可能,因此递归算法应更准确地表述为 递归元 递归算法的思想是将对较大规模的对象的操作归结为对较小规模的对象实施同样的操作。 这种规模的变化就体现在递归算法的变元中的一类(一个或几个)变元上,这类变元被称之为递归元。 递归元的变化是在递归定义中确定的,它的变化应能导致递归算法的终止。 在递归算法的设计中递归元是非常重要的。 Hanoi塔问题 例1:Hanoi塔问题:有A、B、C三根柱子。A上有n个圆盘,自下而上由大到小地叠在一起。 Hanoi塔问题的时间复杂性 Hanoi塔问题的时间复杂性为O(2n)。 证明:对n归纳证明移动次数move(n) = 2n – 1。 归纳基础:当n = 1, move(1) = 1 = 21 – 1。 归纳假设:当n ? k, move(n) = 2n – 1。 归纳步骤:当n= k + 1,移动次数为 move(k+1) = 2(move(k)) + 1 = 2(2k – 1) + 1 = 2k+1 – 1 由归纳法可知对任意的n有move(n) = 2n – 1 常见的递归形式 多变元递归

文档评论(0)

1亿VIP精品文档

相关文档