我有一个3级嵌套循环。内在的价值取决于上面的价值。现在的表现真的是一个杀手O(n * n * n)。此外,也可以在直接循环中确定out.println,这需要打印。我怎样才能用递归替换,或者有什么其他方法可以避免嵌套循环并提高性能。
示例代码:
String[] strArray = getOuterArray();
for(String x : strArray){
String[] internalStrArray = x.getArray();
System.out.println("I am in first");
for(String x: internalStrArray){
String[] internalinStrArray = x.getArray();
System.out.println("I am in second");
for(String x: internalinStrArray){
System.out.println("I am in third "+ x);
}
}
}
public String[] getOuterArray(){
}
public String[] getArray(){
}
答案 0 :(得分:1)
递归不会比循环更快。事实上,由于将函数调用推入堆栈,它可能会变慢。
现在你的代码毫无意义,你在循环中打印出“我在第一/第二/第三”。你并没有在算术上做任何可以改进的事情。我唯一的主要建议是不要将所有变量命名为x,这非常令人困惑。
只要您拥有这三个循环并且想要完成所有打印,就没有什么能让它变得更快。