将嵌套循环替换为递归

时间:2013-09-20 23:04:56

标签: java

我有一个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(){
}

1 个答案:

答案 0 :(得分:1)

递归不会比循环更快。事实上,由于将函数调用推入堆栈,它可能会变慢。

现在你的代码毫无意义,你在循环中打印出“我在第一/第二/第三”。你并没有在算术上做任何可以改进的事情。我唯一的主要建议是不要将所有变量命名为x,这非常令人困惑。

只要您拥有这三个循环并且想要完成所有打印,就没有什么能让它变得更快。