我從this得到的代碼問題,我在Eclipse中運行它並且代碼很好,但是我很困惑自己如何在遞歸順序內部進行。問題在理解遞歸 - Java
public class Permute {
public static void main(String[] args) throws IOException {
System.out.println("Enter a string");
BufferedReader bufReader = new BufferedReader(new InputStreamReader(
System.in));
String text = bufReader.readLine();
shuffle("", text);
}
public static void shuffle(String dummy, String input) {
if (input.length() <= 1)
System.out.println(dummy + input);
else {
for (int i = 0; i < input.length(); i++) {
input = input.substring(i, i + 1) + input.substring(0, i)
+ input.substring(i + 1);
shuffle(dummy + input.substring(0, 1), input.substring(1));
}
}
}
}
我發現在for
循環Shuffle
理解遞歸困難。任何指針在解碼遞歸步驟?
編輯:好吧,這是我的理解,說想我的輸入是ABC,當我在第一循環中運行,我得到啞= A,並輸入= BC,所以眼前的步驟將是往下走的遞歸對於輸入= BC和虛擬= A,然後回來迭代我的初始輸入?
將跟蹤調用與實際參數一起隨機播放,並且您將下架。 – Ingo 2011-04-10 20:56:43
可能的重複:http://stackoverflow.com/questions/717725/understanding-recursion(它可能會幫助你閱讀第一個) – 2011-04-10 21:00:06
@ z7sg:不,我很好的遞歸我只想確保我在想 – SuperMan 2011-04-10 21:04:45