汉诺塔 hanoi 递归
2015-12-17 22:17
183 查看
原创,未经允许,不得转载。
递归属于分治法(divide and conquer)。
遇到递归问题,可以分为三个步骤。
1 分解
2 解决
3 合并
hanoi塔问题,可以经过以上三个步骤来解决,
1 分解
将n个盘子的移动问题,分解为上面n-1个盘子和1个(下面第n个)盘子的移动问题;
2 解决
若n==1
将1个盘子从x移动到z。
若n>1
将上面n-1个盘子从x移动到y;
将1个(下面第n个)盘子从x移动到z;
(3 合并) 将y上面n-1个盘子从y移动到z;
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(n,x,z);
else{
hanoi(n-1,x,z,y);
move(n,x,z);
hanoi(n-1,y,x,z);
}
}
原创,未经允许,不得转载。
递归属于分治法(divide and conquer)。
遇到递归问题,可以分为三个步骤。
1 分解
2 解决
3 合并
hanoi塔问题,可以经过以上三个步骤来解决,
1 分解
将n个盘子的移动问题,分解为上面n-1个盘子和1个(下面第n个)盘子的移动问题;
2 解决
若n==1
将1个盘子从x移动到z。
若n>1
将上面n-1个盘子从x移动到y;
将1个(下面第n个)盘子从x移动到z;
(3 合并) 将y上面n-1个盘子从y移动到z;
void hanoi(int n,char x,char y,char z)
{
if(n==1)
move(n,x,z);
else{
hanoi(n-1,x,z,y);
move(n,x,z);
hanoi(n-1,y,x,z);
}
}
相关文章推荐
- Linux简单命令之三
- .NET CurrentCulture 区域设置代码列表
- Spring自定义属性编辑器
- Freescale IMX6 Android (7): Android启动动画死循环 Home界面不出来与pid XXX exit 可能的原因汇总
- java代码统计工具
- 一个组件注册失败引发的惨案
- android事件分发的研究
- MATLAB中匿名函数与符号函数的转换
- 第一阶段,第二阶段,第三阶段团队github更新项目地址
- 心上莲花次第开系列:流失的幸福
- (java) Isomorphic Strings
- python之web开发二:用Python+Django在Eclipse环境下开发web网站【第一个开发的小案例,按照文章可以成功开发web】
- Android群英传第五章Scroll分析读书笔记
- python读取数据库准备性能测试账号数据
- PIC32MZ tutorial -- Timer Interrupt
- 解析Java对象的equals()和hashCode()的使用
- 如何在win7旗舰版下运行汇编的debug、masm、link等
- 内存管理器(十八)kernel 内存管理---浅析内存寻址
- ssh证书登陆
- 单向链表