设盘子编号为,编号大的尺寸大,有三根柱子.
输出初始局面(所有盘子都在1号柱子)到终止局面(所有盘子都在3号柱子)的最优方案. 时间复杂度: 经典递归,略.
输出最优方案中某一局面之前经过的步骤数. 时间复杂度:
输出当前局面(不一定是最优解的中间步骤)到终止局面的最优方案. 时间复杂度:
输出当前局面下,把所有盘子移动到任一根柱子的最优方案. 时间复杂度:Ο(2^N)
输出当前局面下,把所有盘子移动到任一根柱子的最优方案所需步数. 时间复杂度:
总结一下,对于求方案的问题,因为最坏情况下步骤数可以达到,所以以上源码在渐进意义上达到最优复杂度.
对于求步骤数(无须输出方案),以上源码时间复杂度都是,由于输入时间已达到,所以在渐进意义上也达到了最优复杂度.