【问题标题】:A question regarding the tower of hanoi recursive algorithm time complexity关于河内塔递归算法时间复杂度的问题
【发布时间】:2021-02-21 10:45:20
【问题描述】:

我今天正在做一个编码练习。完成考试后,我检查了结果,遇到了一个问题,问题陈述如下:

给定河内塔问题中的 4 个磁盘,递归算法最多调用相同的函数 ___ 次。
A. 10
B. 16
C. 22
D. 31

我唯一知道的是我选择了 B. 16,我错了。
我在互联网上搜索发现它应该是 2n - 1 次或 15 次。
但是,它不在选项中。
哪个选项是正确的?
任何建议将不胜感激。
谢谢。

【问题讨论】:

  • 也许他们的意思是我说的“最多”。 2^n -1 对于 4 个磁盘是 15 是解决难题所需的“最小”移动,但您可以在序列中添加不必要的步骤。虽然不确定正确答案。

标签: algorithm data-structures divide-and-conquer


【解决方案1】:

4 盘拼图需要 15 步。但是,递归调用的数量取决于它的实现方式。

如果您的递归基本情况是 1 个磁盘 => 1 次移动,则为 15。如果您的递归基本情况为 0 个磁盘 => 0 次移动,则为 31。

【讨论】:

    猜你喜欢
    • 2012-09-11
    • 2023-04-06
    • 2011-10-20
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多