美文网首页数据结构和算法分析
汉诺塔问题(分治法)

汉诺塔问题(分治法)

作者: 张的笔记本 | 来源:发表于2019-11-17 20:58 被阅读0次
//将n个盘子从A通过B移到C
void Hannoi(int n, char A, char B, char C)
{
    if(n == 1){
        cout<<A<<"->"<<C<<endl;
    }
    else if(n == 2){
        cout<<A<<"->"<<B<<endl;
        cout<<A<<"->"<<C<<endl;
        cout<<B<<"->"<<C<<endl;
    }
    else{
        Hannoi(n - 1, A, C, B);
        Hannoi(1, A, B, C);
        Hannoi(n - 1, B, A, C);
    }
}

原理参见 屈婉玲老师 算法设计与分析 ORZ

相关文章

  • 汉诺塔问题(分治法)

  • 汉诺塔问题研究——分治法

    前言 相信学过《数据结构与算法》这门课程的同学都有听过汉诺塔问题,但是可能在大学的时候没有钻研过,或者在学的时候就...

  • 分治法实例-汉诺塔

    1.算法实例——汉诺塔问题 思路: 三个柱子分别为A、B、C,初始状态为盘子都在A上,要求把A的盘子全部移动到C,...

  • 分治算法——汉诺塔问题

    一、分治算法概念 “分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的...

  • 分治算法——汉诺塔问题

    一、分治算法概念 “分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问...

  • 分治算法(汉诺塔问题)

    一. 算法介绍: 分治算法,其实就是把一个大问题看成若干个小问题,解决了所有的小问题,那么大问题就解决了,原问题的...

  • 分治算法实现汉诺塔问题

    分治算法介绍 分治法是一种很重要的算法。字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似...

  • 分治算法之汉诺塔问题

    分治法在每一层递归上都有三个步骤 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题 解决:若...

  • 分治算法(汉诺塔)

    将问题分而治之

  • 汉诺塔问题与递归

    文章也同时在个人博客 http://kimihe.com/更新 汉诺塔问题(Hanoi Tower) 汉诺塔问题的...

网友评论

    本文标题:汉诺塔问题(分治法)

    本文链接:https://www.haomeiwen.com/subject/dfdmictx.html