我读过关于时间复杂性和如何计算它的文章。但是大多数例子都是关于for循环的,而不是递归的。
有人可以用this算法作为例子吗?我想知道当递归出现时的时间复杂度。
该算法是寻找两点之间的所有简单路径。我看到某处的时间复杂度是O(n)!,我说得对吗有人能告诉我怎么做吗是计算出来的?
提前谢谢

最佳答案

我想试试看。我假设每个节点都连接到其他节点,因为我认为这将帮助我建立最坏的情况。比如,我们在一个图中有5个节点[a,b,c,d,e];所以,n=5。在最坏的情况下,每个n节点都有n-1邻居。
我需要选择多少个选项来选择第一个点?五
在选择第一个点后,有多少种方法选择下一个点?4个
你看到图案了吗?(考虑推搡和爆裂)
因为,要考虑所有可能的点,所以必须至少接触每个节点一次,以考虑每个路径。
因此,我们有n选择来选择第一个节点,n-1选择第二个节点,依此类推,这将导致n!可能的路径数,因此使用(未优化的)算法来“访问”每个节点。

09-30 23:42