-2

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(){
}
4

1 に答える 1

1

再帰は、ループよりも高速になることはありません。実際、関数呼び出しをスタックにプッシュするため、非常に遅くなる可能性があります。

現在、コードは意味がありません。ループ内で「私は1番目/2番目/3番目にいます」と出力しています。改善できる算術的なことは実際には何もしていません。私が持っている唯一の主な提案は、すべての変数に x という名前を付けないことです。これは非常に紛らわしいです。

これら 3 つのループがあり、そのすべての印刷を実行したい限り、高速化することはできません。

于 2013-09-20T23:09:52.353 に答える