全排列的递归实现java
时间: 2023-11-04 18:56:20 浏览: 91
引用中提供了两种全排列的实现方法,一种是递归实现,另一种是非递归实现。以下是递归实现的Java代码:
```java
public class Permutation {
public static void main(String[] args) {
String s = "1234";
permute(s.toCharArray(),0, s.length() - 1);
}
public static void permute(char[] s, int from, int to) {
if (from == to) {
System.out.println(s);
} else {
for (int i = from; i <= to; i++) {
swap(s, i, from);
permute(s, from + 1, to);
swap(s, from, i);
}
}
}
public static void swap(char[] s, int from, int to) {
char temp = s[from];
s[from] = s[to];
s[to] = temp;
}
}
```
请注意,这段代码将输出给定字符串的所有全排列。例如,给定输入"1234",它将输出以下结果:
1234
1243
1324
1342
1423
1432
2134
2143
2314
2341
2413
2431
3124
3142
3214
3241
3412
3421
4123
4132
4213
4231
4312
4321
阅读全文