递归系列1

来源:互联网 发布:淘宝粉丝数怎么增加 编辑:程序博客网 时间:2024/05/16 10:04

(文章仅为小白作者学习理解记录之用,程序、语言等可能引自若干参考书)

Hanoi塔问题的理解:

*图片引自《算法分析与设计PPT》


递归算法表示如下:

void hanoi( int n , int a ,int b , int c )

{
    if ( n > 0 )
    {  hanoi ( n-1 , a , c , b );
       move ( a , b ) ;
       hanoi ( n-1 , ,c , b , a );
    }

}

先将a上的n-1个圆盘以b塔为辅助塔移到c上,将第n个圆盘移到b上,最后再以a为辅助将c上的n-1个圆盘移到b上。

hanoi(n,a,b,c)表示将a上按规则叠放的n个圆盘通过辅助塔c移到b上。move(a,b)表示将a上编号为n的圆盘移到b塔上。

递归解法还是十分简洁且易于理解的。

0 0