public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
char[] input = reader.next().toCharArray();
fullSort(input, 0, input.length-1);
System.out.println();
}
public static void fullSort(char[] arr, int start, int end) {
// 递归终止条件
if (start == end) {
for (char i : arr) {
System.out.print(i);
}
System.out.println();
return;
}
for (int i = start; i <= end; i++) {
swap(arr, i, start);
fullSort(arr, start + 1, end);
swap(arr, i, start);
}
}
private static void swap(char[] arr, int i, int j) {
char tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
Java实现全排列
于 2023-03-19 18:41:35 首次发布
这段Java代码定义了一个主函数,通过Scanner从输入读取字符串并转换为字符数组。然后调用fullSort方法进行全排列排序。fullSort方法使用递归和交换操作(i,start)来实现数组的排列,并在达到递归基时打印排列。swap方法用于交换数组中两个位置的字符。
摘要由CSDN通过智能技术生成