【发布时间】:2022-01-19 07:14:09
【问题描述】:
选择递归还是迭代实现最长公共子串查找算法是否重要?它们是否具有相同的运行时复杂性?请解释一下,非常感谢!
【问题讨论】:
-
当您说 算法时,您是否想到了一个特定的算法?在我的经验中,通常的一种是动态编程算法,它更适合迭代而不是递归(尽管动态编程在概念上与递归密切相关)。或者,您可以使用递归加记忆,但这根本不适合迭代。
选择递归还是迭代实现最长公共子串查找算法是否重要?它们是否具有相同的运行时复杂性?请解释一下,非常感谢!
【问题讨论】:
假设递归意味着记忆,迭代意味着自下而上的 DP。根据实际实现和一些优化,两种方法的时间复杂度会略有不同。
基本记忆:
时间复杂度 = O(M*N^2)
空间复杂度 = O(M*N)
迭代:
时间复杂度 = O(M*N)
空间复杂度 = O(M*N)
希望这有点用处。
【讨论】: