public class CharOrder {
//交换函数
public static void swap(char[] list,int k,int i){
char temp=list[i];
list[i]=list[k];
list[k]=temp;
}
//
public static void pailie(char[] list,int k,int m){
if(k==m){//list数组中只剩下一个元素
for(int i=0;i<=m;i++){
System.out.print(list[i]);}
System.out.print(" ");
}
else{
for(int i=k;i<=m;i++){//作为最外围的for循环
swap(list,k,i);
pailie(list,k+1,m);//递归
swap(list,k,i);//返回原先位置,防止输出重复的数组
}
}
}
}
class Main2{
public static void main(String args[]){
char list[]={'a','b','c'};
//CharOrder order=new CharOrder();
int k=0,m=2;
CharOrder.pailie(list, k, m);
}
}
如,若分别输入a,b,c 则输出
abc acb bac bca cba cab