计算递归函数的时间复杂度

时间:2016-03-16 06:20:15

标签: algorithm

我读到了时间复杂性以及如何计算它。但是大多数示例都是关于for循环的,而不是递归。 任何人都可以使用this算法作为例子吗?我想知道递归时的时间复杂度。 该算法用于查找两点之间的所有简单路径。我看到它的时间复杂度是O(n!),我是对的吗?谁能解释我如何计算O(n!)?

提前致谢

1 个答案:

答案 0 :(得分:1)

我试着去试一试。我假设每个节点都连接到每个其他节点,因为我认为这将有助于我确定最坏情况。比如,我们在图中有5个节点[A,B,C,D,E];所以,n=5。在最坏的情况下,每个n节点都有n-1个邻居。

我有多少选项可以选择第一点? 5。

选择第一点后,有多少种方法可以选择下一个点? 4

你看到一个模式吗? (考虑推动和弹出)

因为,您想要考虑所有可能的点,您必须至少触摸一次每个节点,以满足每个路径的需求。

因此,我们有n个选择来挑选第一个节点,n-1选择第二个节点,依此类推,这会产生n!个可能的路径,所以{{1 }"访问"使用(未优化的)算法到每个节点。