gpt4 book ai didi

java - 为什么时间复杂度是n*n*n!对于以下算法打印字符串的所有排列?

转载 作者:行者123 更新时间:2023-12-01 18:42:46 24 4
gpt4 key购买 nike

我明白了!因为第7行必须执行n!程序打印字符串所有排列的次数。 n*n从何而来,不是小于n吗!所以应该被忽略。

1. void perm(String str){
2. perm(str, "");
3. }
4.
5. void perm(String str, String prefix){
6. if(str.length() == 0){
7. System.out.println(prefix);
8. } else{
9. for(int i = 0; i < str.length(); i++){
10. String rem = str.substring(0, i) +
str.substring(i + 1);
11. perm(rem, prefix + str.charAt(i));
12. }
13. }
14. }

最佳答案

可能是因为字符串连接困难。尝试使用 StringBuilder :

StringBuilder rem = new StringBuilder();
rem.append(str.substring(0, i)).append(str.substring(i + 1))
perm(rem.toString(), prefix + str.charAt(i));

关于java - 为什么时间复杂度是n*n*n!对于以下算法打印字符串的所有排列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59889849/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com