public static void main(String[] args) throws Exception { permutation("abc"); }
public static void permutation(String input) { if (input == null) throw new IllegalArgumentException("input is null"); permutation0(input.toCharArray(), 0, input.length()); }
private static void permutation0(char[] inputs, int m, int n) { int i; char t; if (m < n - 1) { for (i = m; i < n; i++) { t = inputs[m]; inputs[m] = inputs[i]; inputs[i] = t; permutation0(inputs, m + 1, n); t = inputs[m]; inputs[m] = inputs[i]; inputs[i] = t; } } else { String value = ""; for (Object input : inputs) { value += input; } System.out.println(value); } }
String str2="acvd";
String strCon = str1.concat(str2);
char strArray [] = strCon.toCharArray();
Arrays.sort(strArray);
for (char ch : strArray) {
System.out.println(ch);
}
那我要求输出它的所有排列顺序:abc,acb,bac,bca,cab ,cba
要求用java代码实现这一算法
permutation("abc");
}
public static void permutation(String input) {
if (input == null)
throw new IllegalArgumentException("input is null");
permutation0(input.toCharArray(), 0, input.length());
}
private static void permutation0(char[] inputs, int m, int n) {
int i;
char t;
if (m < n - 1) {
for (i = m; i < n; i++) {
t = inputs[m];
inputs[m] = inputs[i];
inputs[i] = t;
permutation0(inputs, m + 1, n);
t = inputs[m];
inputs[m] = inputs[i];
inputs[i] = t;
}
} else {
String value = "";
for (Object input : inputs) {
value += input;
}
System.out.println(value);
}
}