1、思想概述:
什么是数组的全排列?
比如,输入一个abc,此时它的全排列应该是abc、acb、bac、bca、cba、cab
此时我们要做到的是,首先在a确定不动的情况下分别将b c进行挪动。然后再将交换,保持b不动挪动a c。
2、代码实现如下:
package com.company.shuzu;
import java.util.Scanner;
public class Shu {
public static void main(String[] args) {
String str = "abc";
change(str.toCharArray(),0);
}
public static void change(char[] str,int i){
if (i>=str.length)
return;
if (i == str.length-1)
System.out.println(String.valueOf(str));
else
for (int j = i;j<str.length;j++){
char temp = str[j];
str[j] = str[i];
str[i] = temp;
change(str,i+1);
temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}
}