OR_06 算法设计_05519.pptVIP

  • 4
  • 0
  • 约1.19万字
  • 约 63页
  • 2017-10-27 发布于江苏
  • 举报
OR_06 算法设计_05519

第六章 算法设计 第一节 分治法 算法总体思想 将要求解的较大规模的问题分割成k个更小规模的子问题。 你站在桥上看风景 看风景的人在楼上看你 明月装饰了你的窗子 你装饰了别人的梦 ——— 卞之琳 直接或间接地调用自身的算法称为递归算法。 由分治法产生的子问题往往是原问题的较小模式,这就为使用递归技术提供了方便。在这种情况下,反复应用分治手段,可以使子问题与原问题类型一致而其规模却不断缩小,最终使子问题缩小到很容易直接求出其解。这自然导致递归过程的产生。 分治与递归像一对孪生兄弟,经常同时应用在算法设计之中,并由此产生许多高效算法。 例: Hanoi塔问题 设a,b,c是3个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求将塔座a上的这一叠圆盘移到塔座b上,并仍按同样顺序叠置。在移动圆盘时应遵守以下移动规则: 规则1:每次只能移动1个圆盘; 规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上; 规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c中任一塔座上。 递归小结 优点:结构清晰,可读性强,而且容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程序带来很大方便。 缺点:递归算法的运行效率较低,

文档评论(0)

1亿VIP精品文档

相关文档