菜单
  

     

     

     

    有的递归特性,特别适合用递归的形式来描述。 如汉诺塔问题:

    将塔座 a 上的一叠 n 个圆盘移动到塔座 b 上,并按照同样的顺序叠置。递归 算法如下:

    //把 n 个盘子依照规则从塔座 a 移至塔座 b; hanoi(n,a,b,c)

    {

    if(n>0)

    {

     

    //依照规则利用塔座 b 把 n-1 个较小的盘子从塔座 a 移至塔座 c; hanoi(n-1,a,c,b);

    //把最下面那个盘子从塔座 a 移动到塔座 b; move(a,b);

    //依照规则利用塔座 b 把 n-1 个较小的盘子从塔座 c 移至塔座 b; hanoi(n-1,c,b,a);

    }

    }

     

    由上述可知,递归算法的实现类似于多个算法之间嵌套的调用,只不过调用 和被调用的算法是同一个算法。

    2.2 分治

    顾名思义,“分治”名字本身就给出了强大的算法设计技术。分治方法是一 种典型的自顶向下的算法设计技术,它可以解决各类问题。为解决某一个问题, 把问题分解为一个或多个子问题,使得每个子问题的类型与原问题相似,并且对 每个子问题独立进行求解,最后将各个子问题的解合并,从而获得原问题的解。 如果划分后的子问题规模仍然相当大,则可利用用分治方法对这些子问题反复进 行划分,直至问题划分得足够小,容易求出问题的解为止。在应用分治方法的过 程中,由于子问题的类型仍然和原问题相似,因此设计算法时很自然地导致递归 过程。

    分治算法通常用递归操作来实现。作为算法设计的技巧来说,递归是分治策来!自~751论-文|网www.751com.cn

     

     

     

    略常用的算法设计技巧


  1. 上一篇:跟踪-学习-检测算法及其在视频中目标跟踪的应用
  2. 下一篇:基于余弦积分图像的快速非局部去噪方法及应用研究
  1. 基于核独立元分析的非线...

  2. MAYA+Unity次世代第一人称射击游戏设计与制作

  3. 高光谱遥感图像线性混合像元分解方法研究

  4. asp.net简易第三方微信公众平台管理系统设计

  5. 基于java的第三人称射击游戏的设计与实现

  6. jsp+mysql第三方物流管理信息系统的设计与实现

  7. jsp房地产信息网设计

  8. java+mysql车辆管理系统的设计+源代码

  9. 杂拟谷盗体内共生菌沃尔...

  10. 十二层带中心支撑钢结构...

  11. 酸性水汽提装置总汽提塔设计+CAD图纸

  12. 中考体育项目与体育教学合理结合的研究

  13. 河岸冲刷和泥沙淤积的监测国内外研究现状

  14. 当代大学生慈善意识研究+文献综述

  15. 大众媒体对公共政策制定的影响

  16. 乳业同业并购式全产业链...

  17. 电站锅炉暖风器设计任务书

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回