关于河内塔递归算法时间复杂度的问题
Posted
技术标签:
【中文标题】关于河内塔递归算法时间复杂度的问题【英文标题】: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 是解决难题所需的“最小”移动,但您可以在序列中添加不必要的步骤。虽然不确定正确答案。 【参考方案1】:4 盘拼图需要 15 步。但是,递归调用的数量取决于它的实现方式。
如果您的递归基本情况是 1 个磁盘 => 1 次移动,则为 15。如果您的递归基本情况为 0 个磁盘 => 0 次移动,则为 31。
【讨论】:
以上是关于关于河内塔递归算法时间复杂度的问题的主要内容,如果未能解决你的问题,请参考以下文章