美文网首页
2.2 递归经典问题:汉诺塔问题

2.2 递归经典问题:汉诺塔问题

作者: Aurochsy | 来源:发表于2019-03-22 14:11 被阅读0次

Chapter2: 时间复杂度分析、递归、查找与排序

2. 递归经典问题:汉诺塔问题

问题

有A,B,C三个柱子,在A柱上有1N个圆盘,将1N个圆盘从A柱移动到C柱,移动过程中始终保持小盘在上,大盘在下

算法

递归思路

一次递归调用执行了以下操作:

  • 先将顶上的 N-1 个盘子从A柱移到B柱上,借助C柱
  • 再将底下最大的盘子从A柱移到C柱上
  • 将这 N-1 个盘子从B柱移到C柱上,借助A柱

代码

int main(){
    int n=4;
    char a='a',b='b',c='c';
    hanoi(n,a,b,c);
    return 0;
} 

void hanoi(int n,char a,char b,char c){
    if(n==1){
        printf("move %d from %c to %c\n",n,a,c);
    }
    else{
        hanoi(n-1,a,c,b);
        printf("move %d from %c to %c\n",n,a,c);
        hanoi(n-1,b,c,a);
    }
} 

相关文章

  • 2.2 递归经典问题:汉诺塔问题

    Chapter2: 时间复杂度分析、递归、查找与排序 2. 递归经典问题:汉诺塔问题 问题 有A,B,C三个柱子,...

  • Python 汉诺塔的实现

    汉诺塔的实现,是一个典型的递归问题,当然越是复杂的递归问题越是考验人的抽象思维; 哈哈哈,言归正传,汉诺塔问题如下...

  • 汉诺塔(Hanoi)经典递归问题

  • 常见算法1——递归算法

    递归算法就是通过自身不断反复调用自身以解决问题,其中最经典的也就是汉诺达和斐波纳契数列的问题了。1.汉诺塔问题在印...

  • 递归——汉诺塔问题

    我参考了两位大佬的代码,其中一位是日本的专业程序员。比较有意思的是他出的面向要考试的群体的那本书讲了这个,后来大概...

  • 数据结构与算法-递归分治-汉诺塔思想

    折半查找算法的递归实现 思想:减少查找序列的长度,分而治之地进行关键字的查找 汉诺塔问题 汉诺塔是我们递归思想,分...

  • 数据结构算法之递归和栈结构

    递归 程序调用自身的编程技巧称为递归简单案例:n的阶乘 汉诺塔 汉诺塔问题描述:3个柱为a、b、c,圆盘最初在a柱...

  • 复杂递归问题:汉诺塔

    复杂递归问题:汉诺塔 汉诺塔问题是法国数学家Edouard Lucas于1883年, 根据传说提出来的。 传说在一...

  • 递归之汉诺塔问题

    我的博客:递归之汉诺塔问题 一.起源: 汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的...

  • 算法分析与设计

    递归汉诺塔问题: https://blog.csdn.net/xb2355404/article/details/...

网友评论

      本文标题:2.2 递归经典问题:汉诺塔问题

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