Skip to content

Commit a959a71

Browse files
Merge pull request youngyangyang04#1196 from xiaofei-2020/fix/back17
修改(20201112回溯周末总结.md):补充分析排列问题时间复杂度
2 parents bb8da1e + 710e816 commit a959a71

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

problems/周总结/20201112回溯周末总结.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
* 空间复杂度:$O(n)$,递归深度为n,所以系统栈所用空间为$O(n)$,每一层递归所用的空间都是常数级别,注意代码里的result和path都是全局变量,就算是放在参数里,传的也是引用,并不会新申请内存空间,最终空间复杂度为$O(n)$。
7777

7878
排列问题分析:
79-
* 时间复杂度:$O(n!)$,这个可以从排列的树形图中很明显发现,每一层节点为n,第二层每一个分支都延伸了n-1个分支,再往下又是n-2个分支,所以一直到叶子节点一共就是 n * n-1 * n-2 * ..... 1 = n!。
79+
* 时间复杂度:$O(n!)$,这个可以从排列的树形图中很明显发现,每一层节点为n,第二层每一个分支都延伸了n-1个分支,再往下又是n-2个分支,所以一直到叶子节点一共就是 n * n-1 * n-2 * ..... 1 = n!。每个叶子节点都会有一个构造全排列填进数组的操作(对应的代码:`result.push_back(path)`),该操作的复杂度为$O(n)$。所以,最终时间复杂度为:n * n!,简化为$O(n!)$。
8080
* 空间复杂度:$O(n)$,和子集问题同理。
8181

8282
组合问题分析:

0 commit comments

Comments
 (0)