我有一個3級嵌套循環。內部價值取決於上面的價值。 O(n * n * n)的表現真的是一個殺手。另外,在即時循環中也可能有一些out.println,需要打印。我如何可以用遞歸來替換,或者是否有其他方法可以避免嵌套循環並提高性能。替換嵌套循環recurssion
示例代碼:
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(){
}
遞歸可能不會提高性能......它可能會使代碼更緊湊,更容易閱讀,但這是一個不同的故事。 – arshajii
咦?如果你真的需要運行n^3次,那麼即使你使用遞歸,它仍然是n^3。 –
爲什麼遞歸會改變O(n * n * n)?如果有的話,它會燒燬你的堆棧。 – Thilo