2014算法与优化复习题补充.docVIP

  • 81
  • 0
  • 约2.96千字
  • 约 7页
  • 2016-12-14 发布于北京
  • 举报
设X和Y都是n位二进制整数,若按普通乘法规则计算,要进行O(n2)步运算才能得到XY的乘积,若用分治法来计算,可有效地降低其复杂性。简述采用分治法求解XY乘积的基本过程。 解:即为大整数的乘法(参照书上2.4节 P29): 扩展Hanoi塔问题:设a,b,c,d是4个塔座。开始时,在塔座a上有一叠共n个圆盘,这些圆盘自下而上,由大到小地叠在一起。各圆盘从小到大编号为1,2,…,n,现要求采用递归算法将塔座a上的这一叠圆盘移到塔座d上,并仍按同样顺序叠置。 在移动圆盘时应遵守以下移动规则: 规则1:每次只能移动1个圆盘; 规则2:任何时刻都不允许将较大的圆盘压在较小的圆盘之上; 规则3:在满足移动规则1和2的前提下,可将圆盘移至a,b,c,d中任一塔座上。 设计算法实现一种移动方案,并分析算法的时间复杂度。 解:书2.1节例2.6 (P23) 比较分治法、动态规划法和贪心算法的使用条件。 解:分治法和递归是紧密相联系的,分治法就是把大问题分解成小问题,然后大问题的解可以通过小问题的解得出来。小问题是相互独立的,可以递归解决。 分治法所能解决的问题一般具有以下几个特征: (1)该问题的规模缩小到一定的程度就可以容易地解决; (2)该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质; (3)利用该问题分解出的子问题的解可以合并为该问题的解; (4)该问题所分解出的各个子

文档评论(0)

1亿VIP精品文档

相关文档