我读到了时间复杂性以及如何计算它。但是大多数示例都是关于for循环的,而不是递归。 任何人都可以使用this算法作为例子吗?我想知道递归时的时间复杂度。 该算法用于查找两点之间的所有简单路径。我看到它的时间复杂度是O(n!),我是对的吗?谁能解释我如何计算O(n!)?
提前致谢
答案 0 :(得分:1)
我试着去试一试。我假设每个节点都连接到每个其他节点,因为我认为这将有助于我确定最坏情况。比如,我们在图中有5个节点[A,B,C,D,E];所以,n=5
。在最坏的情况下,每个n
节点都有n-1
个邻居。
我有多少选项可以选择第一点? 5。
选择第一点后,有多少种方法可以选择下一个点? 4
你看到一个模式吗? (考虑推动和弹出)
因为,您想要考虑所有可能的点,您必须至少触摸一次每个节点,以满足每个路径的需求。
因此,我们有n
个选择来挑选第一个节点,n-1
选择第二个节点,依此类推,这会产生n!
个可能的路径,所以{{1 }"访问"使用(未优化的)算法到每个节点。