【算法】汉诺塔算法 Hanoi Tower ---分治算法

分治算法 是算法中一种很重要的思想,顾名思义,就是指 "分而治之", 就是说把一个非常复杂的问题分解成两个或更多的相同或者相似的子问题,再把子问题分解成更小的子问题,直到最小的子问题能马上求解

汉诺塔 Hanoi Tower 就是分治算法的一种典型应用

Hanoi Tower是算法题中一个经典,它源于印度的一个古老传说,。是说在一个托盘上有A,B,C三根柱子, 在柱子A上有64个从小到大的圆盘,这些圆盘从上到下是从小到大的,最大的圆盘在最下面。 现在我们要把这些圆盘全部移动到柱子C上去,保证柱子C上的圆盘也是一样的从上到下从小到大的顺序,并且每次只能移动一个圆盘。 需要计算出如果柱子上有n个圆盘,需要移动多少次,写出代码

 

 

在这里,柱子A是原始柱, C是目标柱, B是中转柱

 

posted on 2023-02-24 16:01  新西兰程序员  阅读(107)  评论(0编辑  收藏  举报