我从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